希尔排序(概念、原理、代码)C语言

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;

}

}

}

}

}

经验分享 程序员 微信小程序 职场和发展