![](/img/trans.png)
[英]Merging two binary max heaps in which all the elements in one heap is greater than all the elements in the other?
[英]An algorithm to find all nodes greater than some value X in a binary max heap
這是我到目前為止所擁有的。
我們可以使用從堆的根開始的遞歸算法(因為根是最大數。然后,我們將檢查X是否大於我們的根。如果X大於根目錄我們停止了,如果沒有,我們打印根目錄,然后檢查它是左子節點還是右子節點,依此類推...
這是一個好的算法嗎? 我算法的最壞情況下的時間復雜度也將是O(N),其中N是堆中節點的數量。
這個算法很好。 實際上,它在訪問最多3 * k
節點時在時間復雜度方面是最優的,其中k
是滿足給定條件的節點數(之所以如此,是因為只有滿足條件或滿足條件的節點才被訪問父母)。
是的,最壞的情況是O(N)
。 但是您不能做得更好,因為您可能需要打印堆中的所有節點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.