希尔排序:
插入排序改进,先进行分组,对每组使用直接插入排序算法,随着增量的减少,元数原来越多,直到增量为1,分成一组,结束。
def shell_sort(li):
n =len(li)
gap = n//2
while gap >0:
for iin range(gap,n):
j= i
while j>=gapand li[j-gap] > li[j]:
li[j-gap],li[j] = li[j],li[j-gap]
j -= gap
gap = gap/2
alist = [54,26,93,17,77,31,44,55,20]
shell_sort(alist)
print(alist)
网友评论