排序算法(二) 插入排序
插入排序:假设第一个数组元素是一个数组a,将其他元素依次插入进去,将插入的元素插入合适的位置,若插入的元素比a数组中的某元素大,则某元素后移一位,插入的元素插入之前某元素所在的位置。
1 public static void sort(int[] arr) { 2 int temp; 3 for (int i = 1; i < arr.length; i++) { // 除了第一个元素的其他元素依次插入 4 temp = arr[i]; // 待插入的元素 5 int j; 6 for (j = i - 1; j >= 0; j--) { 7 if (arr[j] > temp) { // 若插入的元素比某元素大,则某元素往后移动 8 arr[j + 1] = arr[j]; 9 } else { // 若插入的元素比某元素小,则跳出循环 10 break; 11 } 12 } 13 arr[j + 1] = temp; // 将待插入的元素插入到原来某元素的位置 14 System.out.println(i + ":" + Arrays.toString(arr)); 15 } 16 } 17 18 /* 19 * public static void Csort(int[] a) { int temp; for (int i = 1; i < 20 * a.length; i++) { int j; temp = a[i]; for (j = i - 1; j >= 0; j--) { if 21 * (a[j] > temp) { a[j + 1] = a[j]; } else { break; } } a[j + 1] = temp; 22 * System.out.println(i + ":" + Arrays.toString(a)); } } 23 */ 24 25 public static void main(String[] args) { 26 int[] a = { 23, 13, 35, 65, 21, 44 }; 27 sort(a); 28 // for (int i = 0; i < a.length; i++) { 29 // System.out.print(a[i] + " "); 30 // } 31 }
没错,也不难。

浙公网安备 33010602011771号