排序算法——希尔排序

希尔排序是插入排序的改进版,通过间隔序列分组进行插入排序,提高效率。以数组arr={1,7,9,8,2,4,0,3,5,6,11}降序排序为例,首先选取数组长度的一半作为间隔,进行第一次排序,再依次减小间隔进行排序,直至间隔为1,完成排序。示例中经过三次间隔排序,得到最终的降序排列数组。" 126321755,15091872,股票交易流程详解:从开户到结算,"['金融', '股票市场', '投资', '证券经纪商', '交易流程']
摘要由CSDN通过智能技术生成

希尔排序也是插入排序的一种,是插入排序的改进版本。

插入排序是将数组划分为有序和无序两个序列,通过将无序序列元素逐步插入到有序序列中,从而达到排序的目的,本质上依旧是将数组元素一个个进行比较,选择排序在数组元素个数较少的情况下,简单而有序效,但当数组元素为逆序时,将耗费大量的时间。

希尔排序在插入排序的基础上,选择一个数值,以这个数值为间隔,将数组元素划分为若干组,分组进行插入排序。

随着数值的逐步减小,直至最后比较相邻元素。

以数组arr={1,7,9,8,2,4,0,3,5,6,11}进行降序排序为例:

希尔排序的第一步便是选取数值来进行插入排序

在此选择数组长度/2向下取整

11/2 = 5,所以以5为基准,将数组进行划分:

1为0号元素,0+5 = 5,5号元素对应的是4,则{1,4}划分为一组。

然后向后偏移一位,1号元素与5号元素相对应,{7,0}划分为一组。

同理,将剩下其他元素划分。

第一次划分结果如下所示:

{1,4},{7,0},{9,3},{8,5},{2,6},{4,11}

即:

{1,4,11}

{7,0},

{9,3},

{8,5},

{2,6}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值