Python中可以使用heapq模塊來實現堆排序。堆排序的主要步驟如下:
導入heapq模塊。
定義堆排序函數heap_sort
,該函數接收一個列表作為參數。
使用heapq.heapify()
函數將列表轉換為最小堆。
創建一個空列表sorted_list
用于存儲排序后的結果。
使用heapq.heappop()
函數從堆中依次取出最小值并將其添加到sorted_list
中。
返回sorted_list
作為排序結果。
以下是具體實現代碼:
import heapq
def heap_sort(arr):
heapq.heapify(arr)
sorted_list = []
while arr:
sorted_list.append(heapq.heappop(arr))
return sorted_list
使用示例:
arr = [4, 2, 8, 6, 5, 1, 7, 3]
sorted_list = heap_sort(arr)
print(sorted_list)
輸出結果為:[1, 2, 3, 4, 5, 6, 7, 8]
。