该模块提供了堆队列算法的实现,也称为优先队列算法。
堆是二叉树,其每个父节点的值都小于或等于其任何子节点,堆的特性是它的最小元素总是根。
主要用法
-
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 官方文档