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 }