排序算法(二) 插入排序

插入排序:假设第一个数组元素是一个数组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     }

 

没错,也不难。

posted @ 2018-03-24 21:48  gaochao5kuba  阅读(95)  评论(0)    收藏  举报