java - 在最小堆中搜索最大值

标签 java data-structures max heap min-heap

我是堆的新手,正在尝试了解堆的工作原理。你如何找出最小堆中的最大值?我知道可以通过查找根找到最小值,但是最小堆中的最大值呢?不是寻找代码,更多的是理论和我的理解。

最佳答案

如果有图示,很容易指出最小堆中的最大值。 在最小堆中,根据最小堆的规则,最大值将始终位于树的底部附近。其中父节点的值小于其子节点的值。因此,记住最大值不会因此有任何 child 是非常重要的。

假设给定了一个最小堆。

          2 

     3        7 

  6    4   10   15 

12 14 9 8

在这个最小堆中,只需查看 15 是最大值就非常明显,因为您只需查看没有子元素且位于最小堆中的元素 12、14、9、8、15。

关于java - 在最小堆中搜索最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46615985/

相关文章:

java - 导入org.apache无法解析

java - 如何根据值对 HashMap 的元素进行排序?

python - 两个列表之间的最大值及其索引

size - Logback:一个文件最大文件大小

android - 滥用聚合函数 MAX()

java - 为什么 getElementsByClass 在 jsoup 中不起作用?

java - 如何在java方法中使用泛型

java - 我在运行前初始化 TextView,因为 View 尚未设置

c - 传递未初始化的变量使用 C 抛出错误

c++ - 在 C++ 中寻找解决此问题的特定设计模式