heapq — Heap queue algorithm(堆队列,优先队列)

该模块提供了堆队列算法的实现,也称为优先队列算法

堆是二叉树,其每个父节点的值都小于或等于其任何子节点,堆的特性是它的最小元素总是根。

主要用法

  • heapq.heappush(heap, item)
    将itme的值推送到堆上,保持堆不变。

  • heapq.heappop(heap)
    弹出并返回堆中最小的项,保持堆不变。如果堆为空,则引发IndexError。要访问最小的项而不弹出它,请使用heap[0]。

简单例子

>>> h = []
>>> heappush(h, (5, 'write code'))
>>> heappush(h, (7, 'release product'))
>>> heappush(h, (1, 'write spec'))
>>> heappush(h, (3, 'create tests'))
>>> heappop(h)
(1, 'write spec')
>>> heappop(h)
(3, 'create tests')

参考:
python3 官方文档

上一篇:P1339 [USACO09OCT]Heat Wave G 题解


下一篇:debug:am dumpheap命令源码分析