Java学习笔记——排序算法之希尔排序(Shell Sort)

落日楼头,断鸿声里,江南游子。把吴钩看了,栏杆拍遍,无人会,登临意。

                                 ——水龙吟·登建康赏心亭

希尔算法是希尔(D.L.Shell)于1959年提出的一种排序算法。是第一个时间复杂度突破O(n²)的算法之一。

其基础是插入排序。

上代码:

 public class ShellSort {

     public static void shellSort(int[] arr){

         int increment = arr.length;
int temp;//牌
int i;
int j;
do {
increment = increment/ + ;//增量
for (i = increment; i < arr.length; i++) {
if (arr[i] < arr[i - increment]) {
temp = arr[i];
for (j = i - increment; j >= && temp < arr[j]; j -= increment) {
arr[j] =arr[j]^arr[j + increment];
arr[j + increment] =arr[j]^arr[j + increment];
arr[j] =arr[j]^arr[j + increment];
}
}
}
} while (increment > );
}
}

增量选取△k = 2^(t-k+1)-1 (0≤k≤t≤⌊log2(n+1)⌋)

上一篇:Python实现八大排序算法(转载)+ 桶排序(原创)


下一篇:C++ 构造函数与this指针