1.2 插入排序算法之希尔排序

1、希尔排序:(Shell`s Sort)


思想:

  • 将待排序的表分成若干组
  • 每组内进行直接插排,使整个序列基本有序
  • 然后再对整个表进行更加细化的分组直接插排,始之基本有序
  • 直至无法细化分组最终有序

分组方法:

  • 对给定的一个步长d(d>0),将下标相差为d的倍数的元素分在一组。
  • 希尔排序算法经典的d的取值依次为:
    d1=n/2, d2=d1/2, ……,dk=1
    (直至步长为1,不可再分组,其中n为表长,)

—— 即不同步长进行分组,各个分组内进行”直接插入排序”,直至不能再分



语言很苍白,用图例来解决
例:数组Arr[] = {100, 8, 20, 16, 14, 7, 105,50, 78, 9}
这里写图片描述

  • Step1 : 步长d1为5,相同颜色的为一组,比如第一组为”100 & 7”,每个组进行直接插排,局部有序
  • Step2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值