共計(jì) 444 個(gè)字符,預(yù)計(jì)需要花費(fèi) 2 分鐘才能閱讀完成。
Python 中的 heapq 模塊提供了堆排序算法的實(shí)現(xiàn)。下面是一個(gè)使用堆排序算法對(duì)列表進(jìn)行排序的示例:
import heapq
def heap_sort(nums):
# 將列表轉(zhuǎn)換為堆
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]
在這個(gè)例子中,我們首先使用 heapify
函數(shù)將列表 nums
轉(zhuǎn)換為一個(gè)堆。然后,我們使用 heappop
函數(shù)從堆中彈出最小的元素,并將其添加到已排序列表 sorted_nums
中。重復(fù)這個(gè)過程,直到堆為空。最后,我們返回已排序列表sorted_nums
。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完