前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >希尔排序

希尔排序

作者头像
小小咸鱼YwY
发布2022-05-09 15:21:01
2240
发布2022-05-09 15:21:01
举报
文章被收录于专栏:python-爬虫python-爬虫

一.思想

希尔排序是一种分组插入排序算法。

  • 首先取一个整数d1=n/2,将元素分为d1个为一组,每组相邻量元素之间距离为d1,两组数据一一进行对比按大小,从新分配两组

如[1,3,0,2] 第一次排序后变成[0,2,1,3]

  • 取第二个整数d2=d1/2,重复上述分组排序过程,直到di=1,即所有元素在同一组内进行直接插入排序。

按上面那个简单例子走第二次排序为

[0,2,1,3]按间隔1进行对比第一次然后依次变成

0与2比,0比2小顺序不变

[0,2,1,3]

2与1比,1比2小1去前面

[0,1,2,3]

依次类推...全部走完就是排好了

[0,1,2,3]

二.代码

这是网上找的精简后的代码,我自己撸的和屎一样很乱

代码语言:javascript
复制
def shell_sort(li):
    gap = len(li)//2
    while gap>0:
        for i in range(gap,len(li)):
            tmp =li[i]
            j = i - gap
            while j >=0 and tmp <li[j]:
                li[j+gap]=li[j]
                j -=gap
            li[j+gap]=tmp
        gap /= 2
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.思想
  • 二.代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档