Python中的heapq模块提供了堆排序算法的实现。下面是一个使用堆排序算法对列表进行排序的示例:
import heapq
def heap_sort(nums):
# 将列表转换为堆
heapq.heapify(nums)
sorted_nums = []
while nums:
# 从堆中弹出最小的元素,并添加到已排序列表中
sorted_nums.append(heapq.heappop(nums))
return sorted_nums
# 测试
nums = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_nums = heap_sort(nums)
print(sorted_nums)
输出:
[1, 1, 2, 3, 4, 5, 5, 6, 9]
在这个例子中,我们首先使用heapify
函数将列表nums
转换为一个堆。然后,我们使用heappop
函数从堆中弹出最小的元素,并将其添加到已排序列表sorted_nums
中。重复这个过程,直到堆为空。最后,我们返回已排序列表sorted_nums
。