为了账号安全,请及时绑定邮箱和手机立即绑定

自己理解的希尔排序算法

标签:
C++

希尔排序
void shellsort(int v[],int n)
{
int gap,i,j,temp;
for (gap = n/2; gap >= 1; gap /= 2)
{

    for(i = gap; i < n; i++)

        for(j = i-gap; j>=0 && v[j]>v[j+gap]; j -= gap)//

                {
                      temp = v[j];
                      v[j] = v[j+gap];
                      v[j+gap] = temp;
                }

}
上面的代码可以修改,第二层循环可以写成for(i = 0; i < n-gap; i++)然后下一城循环 for(j = i; j>=0 && v[j]>v[j+gap]; j -= gap),当步长为gap时,整个数组会被分割成gap组,由于每组的第一个数据不用排序,所以需要排序的数据仅仅为n-gap个

点击查看更多内容
4人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消