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 }