【排序算法】希尔排序

本篇文章来聊一聊希尔排序。

基本思想

上篇文章我们学习了折半插入排序,该排序算法的原理是在顺序插入查找插入过程中使用折半查找法从而提高插入效率,为此,我们可以思考一下是否还有办法能够使插入的效率更高呢?

基于此,希尔排序诞生了,希尔排序的基本思想为:

先将整个待排序序列分割成若干子序列,分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行一次直接插入排序。

图解排序过程

现有如下的一个序列:
在这里插入图片描述
我们以5为间隔,将原序列分成若干个子序列:
在这里插入图片描述
此时81、35、41就组成了一个子序列,我们对该子序列进行插入排序,结果如下:
在这里插入图片描述
因为81数值比较大,若按顺序插入或者折半插入,需要经过多次的比较才能够到达指定的插入位置,而通过希尔排序,只进行了两次比较,就让35和81非常接近最终的插入位置,这样的效率无疑是很高的。

此时35、41、81已经有序,我们再以5为间隔,得到一个子序列

~wangweijun CSDN认证博客专家 Spring Java
人生如逆旅,我亦是行人。
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付 39.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值