代码实现如下:
package g;
public class InsertionSort {
public static int[] randomInt(int n, int size) {
int[] values = new int[n];
for (int i = 0; i < values.length; i++) {
values[i] = (int) (Math.random() * size);
}
return values;
}
public static void print(int[] value) {
for (int i : value) {
System.out.print(i+" ");
//System.out.println();
}
}
public static void insertSort(int[] keys) {
for (int i = 1; i < keys.length; i++) {
int temp = keys[i];
int j;
for (j = i - 1; j >= 0 && temp < keys[j]; j--) {
keys[j + 1] = keys[j];
}
keys[j + 1] = temp;
System.out.println("\n第" + i + "趟 temp=" + temp + "\t");
print(keys);
}
}
public static void main(String[] args) {
int[] keys = InsertionSort.randomInt(10, 100);
System.out.print("关键字序列:");
InsertionSort.print(keys);
InsertionSort.insertSort(keys);
}
}
输出如下:
关键字序列:19 98 77 86 31 40 89 4 38 88
第1趟 temp=98
19 98 77 86 31 40 89 4 38 88
第2趟 temp=77
19 77 98 86 31 40 89 4 38 88
第3趟 temp=86
19 77 86 98 31 40 89 4 38 88
第4趟 temp=31
19 31 77 86 98 40 89 4 38 88
第5趟 temp=40
19 31 40 77 86 98 89 4 38 88
第6趟 temp=89
19 31 40 77 86 89 98 4 38 88
第7趟 temp=4
4 19 31 40 77 86 89 98 38 88
第8趟 temp=38
4 19 31 38 40 77 86 89 98 88
第9趟 temp=88
4 19 31 38 40 77 86 88 89 98