from heapq import heapify, heappop, heapreplace, heappush, nsmallest, nlargest
# 创建最小堆
heapify(list)
# 从最小堆中删除并返回栈顶元素
top = heappop(list)
# 向最小堆中添加元素
heappush(list, val)
# 从最小堆中先删除栈顶元素然后向最小堆中添加元素
res = heapreplace(list, val)
# 先向最小堆中添加元素val,并返回堆顶元素
res = heappushpop(list, val)
# 返回列表中前n个最小元素,本质是调用sort()函数
res = nsmallest(n, list)
# 返回列表中前n个最大元素,本质是调用sort()函数
res = nlargest(n, list)
# 最大堆的构建等操作类似最小堆,但无push操作(包括无_heappush_max和无_heappushpop_max)
_heapify_max(list)
_heappop_max(list)
_heapreplace_max(list, val)
# 构建最大堆,其实可以通过构建负值的最小堆实现,较为方便
python中heapq的使用
最新推荐文章于 2024-05-29 11:19:10 发布