def shell_sort(alist):
"""希尔排序又叫缩小增量排序,是插入排序的一种"""
n = len(alist)
gap = n // 2
while gap > 0 :
for j in range(gap,n):
i = j
while i > 0 :
if alist[i] < alist[i-gap] :
alist[i] , alist[i-gap] = alist[i-gap] , alist[i]
i -= gap
else:
break
gap //= 2
alist = [54,26,17,29,66]
print(alist)
shell_sort(alist)
print(alist)
#最优时间复杂度O(n^1.3)
#最坏时间复杂度O(n^2)
#算法不稳定
Python实现希尔排序算法
最新推荐文章于 2023-06-03 09:26:23 发布