希尔排序
# def shell_sort(alist):
n = len(alist)
gap = n // 2
#gap变化到o之前,插入算法执行的次数
while gap > 0:
#插入算法,与普通的插入算法的区别就是gap步长
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步长
gap = gap // 2
if __name__ == "__main__":
alist = [25, 64, 53, 23, 89, 77, 17]
print(alist)
shell_sort(alist)
print(alist)
C:\Users\zhaoyuan\Anaconda3\envs\pytorch_cpu\python.exe C:/Users/zhaoyuan/PycharmProjects/untitled/数据结构与算法/希尔排序.py
[25, 64, 53, 23, 89, 77, 17]
[17, 23, 25, 53, 64, 77, 89]
希尔排序算法python实现
最新推荐文章于 2022-04-22 17:38:21 发布