其他排序算法的Python实现请参考Python版归并排序算法(附Python程序__name__属性用法演示视频),侏儒排序算法原理与Python实现,Python版基于递归的冒泡排序算法,Python版快速排序算法,Python版选择排序算法,Python版冒泡法排序算法。
本文再给出Python版的堆排序算法,这样的话关于排序算法基本上就全了。本文代码主要借助于标准库heapq中的入堆和出堆函数来实现,属于原地排序,直接影响原来的列表。
from heapq import heappush, heappop
import random
def heapSort(lst):
temp = []
for item in lst:
#入堆
heappush(temp, item)
lst.clear()
for i in range(len(temp)):
#出堆
lst.append(heappop(temp))
lst = [random.randint(1,100) for i in range(20)]
print(lst)
heapSort(lst)
print(lst)