- 将待排序数组分为有序数组和无序数组,有序数组初始为数组的一个元素(只有一个元素的数组肯定是有序的)。每轮排序从无序数组中取出一个数字插入到有序数组里,从而成为一个更长的有序数组,最后完成排序。
- 稳定排序。
- 在接近有序的情况下,表现优异。
public static void insertSort(int[] arr) { //基于赋值for (int i = 1; i < arr.length; i++) {int ai = arr[i];int j=i;if (ai < arr[j - 1]) {while (j > 0 && arr[j-1] > ai) { //将arr[i]插入到arr[0,i)的合适位置arr[j] = arr[j-1];j--;}arr[j] = ai;}}}
