{site_name}

{site_name}

🌜 搜索

Python的heapq是一个用于堆操作的模块

Python 𝄐 0
python heapq大顶堆,python heapq key,python heapq 2D array,python heapq源码,python heapq大根堆,python heapq 最大堆
Python的heapq是一个用于堆操作的模块。堆是一种特殊的数据结构,可以在O(log n)时间内找到最小值或最大值。

具体来说,Python的heapq提供了以下函数:

- heappush(heap, item):将元素item推入heap中,并保持heap属性。
- heappop(heap):弹出并返回heap中的最小元素,并保持heap属性。
- heapify(x):将列表x原地转换为堆。
- heapreplace(heap, item):弹出并返回heap中的最小元素,并将item推入heap中,并保持heap属性。

以下是一个示例,展示如何使用heapq来对列表进行堆排序和查找最大/最小元素:

python
import heapq

# 创建列表并将其转换为堆
lst = [3, 5, 1, 8, 2]
heapq.heapify(lst)

# 将元素6推入堆并弹出最小元素
heapq.heappush(lst, 6)
print(heapq.heappop(lst))

# 弹出并返回最大元素
print(heapq.nlargest(1, lst))
print(heapq.nsmallest(1, lst))

# 堆排序
sorted_lst = []
while lst:
sorted_lst.append(heapq.heappop(lst))
print(sorted_lst)

输出结果为:

1
[8]
[1]
[1, 2, 3, 5, 6, 8]