Java---算法---插入排序

 1     /**
 2      * 插入排序(升序)
 3      * 
 4      * @param array
 5      */
 6     public static void insertSort(int[] array) {
 7 
 8         int j = 0;
 9 
10         // 下标从1开始,因为要和前一个元素比较大小
11         for (int i = 1; i < array.length; i++) {
12 
13             // 前一元素大于当前元素
14             if (array[i - 1] > array[i]) {
15 
16                 // 交换位置
17                 array[i - 1] = array[i - 1] ^ array[i];
18                 array[i] = array[i - 1] ^ array[i];
19                 array[i - 1] = array[i - 1] ^ array[i];
20 
21                 // 记录下交换后的位置(较小元素的位置)
22                 j = i - 1;
23 
24                 // 判断新位置是否已到起始位置、并前一元素大于当前元素
25                 while (j > 0 && array[j - 1] > array[j]) {
26 
27                     // 交换位置
28                     array[j] = array[j] ^ array[j - 1];
29                     array[j - 1] = array[j] ^ array[j - 1];
30                     array[j] = array[j] ^ array[j - 1];
31 
32                     // 更新位置
33                     j = j - 1;
34                 }
35             }
36         }
37         System.out.println(Arrays.toString(array));
38     }

 

posted on 2014-02-19 14:39  小沫9  阅读(183)  评论(0编辑  收藏  举报