平常我们使用的排序算法里,希尔排序是很重要的一个排序算法,在这里总结一下。
希尔排序的核心思想是:对数据进行分组排序,组内排序完毕之后再次进行插入排序。
详细代码实现:
public static int[] shellSort(int[] arr) {
if (arr.length <= 1) return arr;
for (int i = arr.length / 2; i > 0; i /= 2) {//控制增量
System.out.println("增量d:" + i);
for (int j = i; j < arr.length; j++) {//里面两个for循环负责把分好组的值进行排序
for (int k = j - i; k >= 0; k -= i) {
if (arr[k] > arr[k + i]) {
int num = arr[k + i];
arr[k + i] = arr[k];
arr[k] = num;
}
}
}
}
return arr;
}