python中heapq的使用

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的使用)