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