1、希尔排序(Shellsort),也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。
2、希尔排序:(1)只不过是将待排序列按某种规则分成几个子序列,分别对这几个子序列进行直接插入排序
(2)这个规则的体现就是增量的选取,如果增量为1,就是直接插入排序
(3) 希尔排序的每趟排序都会使整个序列变得更加有序,等整个序列基本有序了,再来一趟直接插入排序,这样会使得排序效率更高
3、void ShellSort(int arr[],int length){
int i,j,k,gap,temp;
for(gap=length/2;gap>0;gap=gap/2){
for(i=0;i<gap;i++){
for(j=i+gap;j<length;j=j+gap){
if(arr[j]<arr[j-gap]){
temp=arr[j];
k=j-gap;
while(k>=0&&arr[k]>temp){
arr[k+gap]=arr[k];
k=k-gap;
}
array[k+gap]=temp;
}
}
}
}
}