Wikipedia 希尔排序:
代码:
# Shell_Sort
def shell_sort(lst):
length = len(lst)
gap = length/2
while gap:
for i in xrange(gap):
for j in xrange(1,length/gap):
for flag in xrange(j):
k = (j-flag ) * gap + i
if k < length and lst[k] < lst[k-gap]:
lst[k], lst[k-gap] = lst[k-gap], lst[k]
gap = gap / 2
return lst
欢迎大家质疑代码 !