質問
heapqのLIBSによって作成された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]
用アレイ K 、カウントされ ゼロからの要素。のために 比較、存在しない要素があります 無限であると考えられて。 <強いです> ヒープの興味深い特性は、ということですheap[0]
は常に最小であります 要素。の
(そしてそれはおそらく何のpeek
機能がない理由です:それは必要ありません。)
他のヒント
あなたは、Python 2.4以降を使用している場合は、
、あなたも)(heapq.nsmallestを使用することができます。
所属していません StackOverflow