Q
搜索堆中的元素
16
A
回答
31
您需要搜索堆中的每個元素以確定元素是否在裏面。
儘管(我們假設這裏有一個最大堆),但是可以進行一次優化。如果您到達的節點值低於要搜索的元素的值,則不需要從該節點進一步搜索。但是,即使使用此優化,搜索仍然是O(N)(需要平均檢查N/2個節點)。
0
相關問題
- 1. ArrayList中的搜索元素
- 2. 搜索LinkedList中的元素
- 3. 搜索XML元素
- 4. 元素內的Webdriver搜索
- 5. Drools中列表中的搜索元素
- 6. Selenium - 在元素內搜索元素
- 7. 搜索列表中的元素列表
- 8. 搜索列表中的元素
- 9. 如何搜索矢量中的元素?
- 10. 搜索數組中的元素
- 11. 搜索對象數組中的元素
- 12. 數組中的搜索元素
- 13. 搜索Json對象中的元素
- 14. stl容器中的搜索元素
- 15. 如何搜索golang片中的元素
- 16. 在html中元素的最快搜索
- 17. 搜索UIAElementArray中的文本/元素
- 18. 彙總和搜索流中的元素
- 19. 多個搜索元素
- 20. 數組元素搜索
- 21. XPath特定元素搜索
- 22. 搜索元素列表
- 23. matlab搜索匹配元素
- 24. 忽略CTS元素:搜索
- 25. Watin:在元素的子元素中搜索
- 26. 在堆棧中搜索
- 27. 在列表中搜索元素Python
- 28. 在TreeSet中搜索特定元素
- 29. 搜索在Chrome Inspect元素中消失
- 30. 在jquery中嵌套元素搜索
這完全是真的嗎?以下面的堆爲例: '[5,4,1,3]'如果我爲數字3搜索這個堆(以數組的形式),我將按1並根據您的算法在此停止當它實際上不是它堆在一堆時?我在這裏錯過了什麼嗎? –
通過優化,具有根1的子樹不會被進一步搜索,因爲它不能包含3. 3在另一個子樹中。我同意線性搜索(而不是遞歸)可以給出錯誤的答案。 –
@JamesSanders在所有情況下都是如此,即使是線性搜索。完整的二叉樹的值爲3,左邊的孩子爲4,1與4的高度相同。即使您正在進行線性搜索,優化也表示4> 3,因此您必須至少,比較4的孩子,除了與4高度相同的所有其他元素。 – lee