内排序-插入类排序-希尔排序

希尔排序:内排序   插入类排序   不稳定  的排序,平均时间复杂度O(nlogn)~O(n^2)

希尔排序的原理:希尔排序是对直接插入排序的一种改进,减小了时间复杂度,希尔排序又称减小增量排序。将待排序列按照增量 d 分成若干子序列,对子序列进行直接插入排序。然后减小增量d,将序列再分为若干子序列,再对子序列进行直接插入排序。待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。

d的第一次选取d=n/2,第二次取d/2,直到d=1


举例:

10,5,7,25,30,48,21,3

第一趟排序:

选取d=8/2=4

分组

1057253048213

排序后

10,5,7,3,30,48,21,25

第二趟排序:

选取d=4/2=2

分组

1057330482125

排序后

7,3,10,5,21,25,30,48

第三趟排序:

选取d=2/2=1

d=1时,就是对整个序列直接插入排序,直接插入排序对基本有序序列排序具有较高的效率。

排序后

3,5,7,10,21,25,30,48


代码:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值