对于头插法的理解(希望可以被批评指正)


头插法是一种排序算法,它基于希尔排序(Shell Sort)的原理。希尔排序是插入排序的一种更高效的改进版本,它通过引入增量序列来减少比较和移动操作的次数。头插法是希尔排序中使用的一种插入排序技术,具体步骤如下:

1. 选择增量:首先选择一个增量序列,这个序列可以是固定的,也可以是动态生成的。增量序列的目的是将数组分成多个子序列,每个子序列中的元素数量逐渐减少。

2. 分组:根据增量序列,将数组分成多个子序列。每个子序列中的元素数量是增量序列中的一个值。

3. 头插排序:对每个子序列进行头插排序。头插排序的步骤如下:
   - 从第二个元素开始,将其作为待插入元素。
   - 与子序列中已排序的部分的元素进行比较,找到合适的位置插入待插入元素。
   - 将待插入元素插入到找到的位置,并将后面的元素向后移动一位,以腾出空间。

4. 减小增量:减小增量序列中的值,重复步骤3,直到增量为1。

5. 完成排序:当增量减小到1时,整个数组将被分成单个元素的子序列,此时数组已经是有序的。

头插法的关键在于它通过增量序列减少了排序过程中的比较次数,从而提高了效率。然而,希尔排序的增量序列选择对算法性能有很大影响,不同的增量序列可能会导致不同的性能表现。

最后我个人的理解就是在每次链表中,L都是该链表的头b18655cdd3334e379f1eddd8b337f2f0.png

 重要的代码与我自己个人的理解

cbb3dd2b67ac4a8393805aa04f244ea9.png

 

 

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值