/** * 从数组的第二位开始遍历每一个元素 * 对遍历的每一个元素都与前面的元素进行比较,如果比前面遍历到的元素要小,就进行移位 * 在进行遍历的时候,左边的元素都是一个有序的数组 * * 插入排序 * @param arr */ public static void insertSort2(int[] arr) { //移位 //补位 for (int i = 1; i < arr.length; i++) { int temp = arr[i]; int leftIndex = i - 1;//起始左下标 while (leftIndex >= 0 && arr[leftIndex] > temp) { //移位 arr[leftIndex + 1] = arr[leftIndex]; leftIndex--; } //补位 arr[leftIndex + 1] = temp; } }