1. 程式人生 > >直接插入排序(java版)

直接插入排序(java版)

直接插入排序(Straight Insertion Sort)的基本操作是將一個記錄插入到已經排好序的有序表中,從而得到一個新的、記錄數增1的有序表。

                   – 《大話資料結構》
                  

package com.zhangyike.insertSort;

import java.util.Arrays;
import java.util.Random;

/**
 * 插入排序法
 */
public class InsertSort {
    public static void main(String[] args) {
        int
count = 10; int n[] = new int[count]; Random rd = new Random(); for (int i = 0; i < n.length; i++) { n[i] = rd.nextInt(count); } System.out.println("排序前:" + Arrays.toString(n)); insertSort(n); System.out.println("排序後:" + Arrays.toString(n)); } private
static void insertSort(int[] n) { for (int i = 1; i < n.length; i++) { int key = n[i]; int position = i; //postion之前是一個有序序列,當position位置的值小於他前面的值的時候,去position前面找最後一個大於position的值 //注意:這塊一定是key作比較,而不是n[position] while(position > 0 && key < n[position-1
]){ n[position] = n[position-1];//大於key的值依次向後移動。 position--; //將key放在合適的位置上 n[position] = key; } } } }