algorithm - 在Max-Heapify算法中,验证左右元素是否小于堆大小的目的是什么?

标签 algorithm sorting data-structures max-heap

这是 Max-Heapify 算法的伪代码:

MAX-HEAPIFY(A, i)
1. l <- Left(i)
2. r <- Right(i)
3. if l <= heap-size[A] and A[l] > A[i]
4.   largest <- l
5. else largest <- i

[...]

验证左堆的索引小于等于输入中给定的堆 A 的大小的目的是什么?

最佳答案

这里的l(左)和r(右)是左右 child 的索引值,而不是值本身,所以要确保索引( l & r) 不要超过堆的大小(堆存储为数组)我们根据堆大小检查它。

关于algorithm - 在Max-Heapify算法中,验证左右元素是否小于堆大小的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48487076/

相关文章:

algorithm - 找到删除需要旋转2次的节点?

algorithm - 如何用红黑树实现多重集?

algorithm - Scala中nxm和mxp矩阵的乘法算法

c# - 将 List<Object> 转换为 System.Array[]

python - 每个元素的反转计数

c# - 文件搜索功能的有效方法

algorithm - 计算随机放在 table 上的卡片所覆盖的区域

python - 将值列表舍入到 python 中另一个列表中最接近的值

java - 合并排序不能递归地工作

memory-management - 用于以解释语言存储变量的数据结构