希尔(shell)排序

希尔排序是一种提高效率的排序算法,通过分组进行插入排序,逐步缩小分组间隔,最终达到整体有序。它在数据量较大且部分有序的情况下表现出较高的效率。希尔排序的过程包括分组、对每组进行插入排序,随着组的减少,直至只剩一个组,完成排序。
摘要由CSDN通过智能技术生成

冒泡排序算法,选择排序算法和插入排序算法,虽然思路比较直观,但是排序的效率比较低。对于大量的数据需要排序时,往往需要寻求其他更为高效的排序算法。Shell排序算法便是其中一种。

  1. 第一次排序,首先将数组分为6/2=3个数字序列,第1个数据127和第4个数据101为一对,第2个数据118和第5个数据112为一对,第3个数据105和第6个数据100为一对。每一对数据进行排序后的数据101
    112 100 127 118 105.

  2. 第二次排序,将数组分为6/4=1个序列(这里执行取整操作),此时逐个对数据比较,按照插入排序算法对该序列进行排序。排序后的数据为100
    101 105 112 118 127

示例:

  • 希尔排序算法严格来说基于排序的思想,其又称为希尔排序或者缩小增量排序。希尔排序算法的排序流程如下:
    ①将有n个元素的数组分成n/2个数字序列,第一个数据和第n/2+1个数据为一对,……….
    ②一次循环使每一个序列对拍好顺序。
    ③然后,再变为n/4个序列,再次排序。
    ④不断重复上述过程,随着序列减少最后变为一个,也就完成了整个排序。
    从上面的例子可以非常直观的了解到Shell排序算法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值