Python中可以使用heapq模塊來實現(xiàn)堆排序。堆排序的主要步驟如下:
導(dǎo)入heapq模塊。
定義堆排序函數(shù)heap_sort
,該函數(shù)接收一個列表作為參數(shù)。
使用heapq.heapify()
函數(shù)將列表轉(zhuǎn)換為最小堆。
創(chuàng)建一個空列表sorted_list
用于存儲排序后的結(jié)果。
使用heapq.heappop()
函數(shù)從堆中依次取出最小值并將其添加到sorted_list
中。
返回sorted_list
作為排序結(jié)果。
以下是具體實現(xiàn)代碼:
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)
輸出結(jié)果為:[1, 2, 3, 4, 5, 6, 7, 8]
。