希尔排序(概念、原理、代码)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;

                            }

                      }

               }

      }

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值