1 /** 2 * 功能:希尔排序 3 */ 4 public class ShellSort { 5 6 public int[] shellSort(int[] array) { 7 8 int increment = array.length; 9 int temp = 0; 10 int index = 0; 11 12 do { 13 // 分组的步长 14 increment = increment / 3 + 1; 15 16 for (int i = increment; i < array.length; i++) { 17 18 // 每一组数进行插入排序 19 temp = array[i]; 20 index = i; 21 for (int j = i - increment; j >= 0; j -= increment) { 22 if (array[j] > temp) { 23 array[j + increment] = array[j]; 24 index = j; 25 } 26 } 27 array[index] = temp; 28 } 29 30 } while (increment > 1); 31 32 return array; 33 } 34 }