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

ShellSort 希尔排序

时间:2019-12-26 09:44:08      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:int   while   希尔   highlight   python实现   str   混淆   更换   shellSort   

# ShellSort希尔排序_Python实现

def shell_sort(li):
    n = len(li)
    # gap间隔为长度除2
    gap = n // 2

    while gap > 0:
        for i in range(gap, n):
            while i >= gap and li[i - gap] > li[i]:
                li[i], li[i - gap] = li[i - gap], li[i]
                i -= gap
        gap //= 2
    return li


list = [1, 55, 98984, 65, 165, 356, 54, 3, 645, 74, 64, 35]

li = shell_sort(list)

print(li)

  

希尔排序:

希尔排序使用了两个循环和一个遍历
希尔排序就是通过控制间隔完成大致分类, 然后分隔长度折半,继续对比,继续分类.然后再折半,再对比
容易混淆的地方在于, 当满足交换条件之后, 还要向前一步对比,以免更换后的数值比上一步还小.

ShellSort 希尔排序

标签:int   while   希尔   highlight   python实现   str   混淆   更换   shellSort   

原文地址:https://www.cnblogs.com/jrri/p/12099926.html

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