Shell排序

 1 public void shellSort(int[] array) {
 2         int increment = array.length;
 3         do {
 4             increment = increment / 2; // 增量序列
 5             for (int i = increment; i < array.length; i++) {
 6                 if (array[i] < array[i - increment]) {
 7                     int guard = array[i];
 8                     int j;
 9                     for (j = i - increment; (j >= 0) && (guard < array[j]); j -= increment) // 记录后移,查找插入位置
10                     {
11                         array[j + increment] = array[j];
12                     }
13                     array[j + increment] = guard; // 插入
14                 }
15             }
16         } while (increment > 1);
17         for (int i = 0; i < array.length; i++) {
18             System.out.println(array[i]);
19         }
20     }

 

posted @ 2016-10-13 10:25  煮酒听雨  阅读(700)  评论(0编辑  收藏  举报