Python3 heapq – 堆排序算法
import heapq
# 定义一个堆排序函数
def heap_sort(arr):
heapq.heapify(arr) # 将列表转换为最小堆
sorted_arr = []
while arr:
sorted_arr.append(heapq.heappop(arr)) # 弹出堆顶元素并添加到排序列表中
return sorted_arr
# 示例使用
unsorted_arr = [10, 5, 3, 1, 4, 2, 6, 8, 7, 9]
sorted_arr = heap_sort(unsorted_arr)
print("排序后的数组:", sorted_arr)
这段代码定义了一个名为heap_sort
的函数,它接受一个列表作为参数,并返回该列表排序后的结果。它使用了heapq
模块中的heapify
和heappop
函数来实现堆排序算法。代码首先调用heapify
将列表转换为最小堆,然后通过循环弹出堆顶元素并收集这些元素来构建排序后的数组。
评论已关闭