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

时间:2018-01-28 13:52:01

标签: 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大小的目的是什么?

1 个答案:

答案 0 :(得分:3)

此处l(左)和r(右)是左右子项的索引值,而不是值本身,因此要确保索引(l&amp; r)不要不超过堆的大小(作为数组存储的堆)我们根据堆大小来检查它。