希尔排序

希尔排序又叫做缩减增量排序,是对插入排序的一种优化算法。它通过比较相距一定间隔的元素来工作;各趟比较所用的距离随着算法的进行而缩小,直到只比较相邻元素的最后一趟排序位置。

希尔排序
private static int[] shellSort(int[] array) {
    for (int i = array.length / 2; i > 0; i /= 2) {     //定义步长
        for (int j = 0; j < array.length - i; j++) {    //从头至尾逐个执行
            for (int k = i; k < array.length; k += i) { //所以相隔k的两个元素比较
                int temp;
                if (array[k - i] > array[k]) {
                    temp = array[k - i];
                    array[k - i] = array[k];
                    array[k] = temp;
                }
            }
        }
    }
    return array;
}

Last updated