希尔排序就是增强版的选择排序,插入排序是依次进行插入比较.希尔排序则是选择增量间隔进行比较,这样就可以节省时间效率.时间复杂度为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;
}
}
}
}