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
。