python-实现希尔排序

时间:2017-09-16 13:08:14   收藏:0   阅读:212
# encoding=utf-8


def shell_sort(alist):
    """希尔排序"""
    n = len(alist)
    gap = n // 2
    while gap >= 1:
        for j in range(gap, n):
            i = j
            while (i-gap) >= 0:
                if alist[i] < alist[i-gap]:
                    alist[i], alist[i-gap] = alist[i-gap], alist[i]
                    i -= gap
                else:
                    break
        gap //= 2

if __name__ == __main__:
    alist = [22, 1, 4, 553, 3, 212, 77]
    print(alist)
    shell_sort(alist)
    print(alist)

 

原文:http://www.cnblogs.com/wgDream/p/7530863.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!