码迷,mamicode.com
首页 > 编程语言 > 详细

无人问津的排序(一)----希尔排序

时间:2018-06-23 18:50:27      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:idt   就是   分享图片   width   序列   bsp   gap   code   font   

希尔排序思路:

技术分享图片

序列变化:

d=4

技术分享图片

d=2

 技术分享图片

 d=1

 技术分享图片

def shell_sort(li):
    gap = len(li)//2 # 间隔多少张牌
    while gap >= 1:  # 间隔的排数大于一张
        for i in range(gap,len(li)):  # 每次看手里的一张牌 ,为什么从gap看,因为手里有gap张牌,也就是gap组
            tmp = li[i] # 取出一张牌
            j = i - tmp # j 为手里的前一张牌,i 为当前的牌 - 一组牌中的gap张
            while j >= 0 and tmp < li[j]:
                li[j + gap] = li[j]  # 给新的牌腾地
                j -= gap # 另一张牌所对应的牌
            li[i - gap] = tmp
            gap /= 2

 

无人问津的排序(一)----希尔排序

标签:idt   就是   分享图片   width   序列   bsp   gap   code   font   

原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/9218077.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!