题
什么是由heapq库创建在Python堆偷看的官方方法?现在我有
def heappeak(heap):
smallest = heappop(heap)
heappush(heap, smallest)
return smallest
这可以说是,不是很好。我总是假设heap[0]
是堆的顶部和使用?还是那样承担过多的底层实现的?
解决方案
是的,你可以做这样的假设,因为它是在文档一中陈述>:
堆是数组为其
heap[k] <= heap[2*k+1]
和heap[k] <= heap[2*k+2]
所有ķ,计数 从零元素。为求 比较而言,不存在的元素是 被认为是无限的。的的 堆的有趣的特性是,heap[0]
始终是其最小 元件。强>
(而这有可能是没有peek
功能的原因:没有必要为它)
其他提示
如果您使用Python 2.4或更新,也可以使用heapq.nsmallest()。
不隶属于 StackOverflow