希爾排序就是增強版的選擇排序,插入排序是依次進行插入比較.希爾排序則是選擇增量間隔進行比較,這樣就可以節(jié)省時間效率.時間復雜度為nlogn.
代碼:
/**
* Created by Hammy on 2018/3/1.
*/
public class ShellSort
{
/**
* 希爾排序的核心就是取一定的間隔進行插入排序
*/
public static void sort(int[] array){
int n=array.length;
int j;
for(int gap=n/2;gap>0;gap=gap/2){
for(int i=gap;i<n;i++){
int temp = array[i];
for(j=i;j>=gap&&array[j-gap]>temp;j-=gap){
array[j]=array[j-gap];
}
array[j]=temp;
}
}
}
}