排序系列-希爾排序

希爾排序是不穩定的算法算法

 

# -*- coding: UTF-8 -*- 
'''
Created on 2016年11月28日

@author: llg

shell 排序是 插入排序的一個變種
'''

def shellsort(seq):
    length=len(seq)
    inc=0
    while inc<=length/3:
        inc=inc*3+1
    print(inc)
    while inc>=1:
        for i in range(inc,length):
            tmp=seq[i]
            for j in range(i,0,-inc):
                if tmp<seq[j-inc]:
                    seq[j]=seq[j-inc]
                else:
                    j+=inc
                    break
            seq[j-inc]=tmp
        inc//=3


mylist0 = [12, 11, 13, 1, 2, 4, 3]
shellsort(mylist0)
print (mylist0)
相關文章
相關標籤/搜索