1.基本思想
把待排序的后续数组按其大小逐个插入前置的已排好的有序数组中,直到待排序的后续数组长度为零为止。
2.思路
当插入第 i 个值时,前面的 arr[0] arr[1] arr[2] ...... arr[ i - 1 ] 都已排好序,此时用 arr[ i ] 的排序码与 arr[ i - 1 ] arr[ i - 2 ]逐个进行比较并于合适位置插入,同时原来位置的元素后移一个。
3.代码实现
public static void insertSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int j = i - 1;
int min = arr[i];
for (; j >= 0; j--) {
if(arr[j] > min) {
arr[j + 1] = arr[j];
}else {
break;
}
}
arr[j + 1] = min;
}
}