溫馨提示×

Python堆排序怎么實現(xiàn)

小億
105
2023-08-01 16:12:15
欄目: 編程語言

Python中可以使用heapq模塊來實現(xiàn)堆排序。堆排序的主要步驟如下:

  1. 導(dǎo)入heapq模塊。

  2. 定義堆排序函數(shù)heap_sort,該函數(shù)接收一個列表作為參數(shù)。

  3. 使用heapq.heapify()函數(shù)將列表轉(zhuǎn)換為最小堆。

  4. 創(chuàng)建一個空列表sorted_list用于存儲排序后的結(jié)果。

  5. 使用heapq.heappop()函數(shù)從堆中依次取出最小值并將其添加到sorted_list中。

  6. 返回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]。

0