我正在阅读 Cormen 的“算法简介”,并且正在尝试实现堆排序,但我一直无法理解一件事:我们如何计算heap_size
给定数组的 我的教科书说
表示堆的数组 A 是一个具有两个属性的对象:A.length,(通常)给出数组中元素的数量,以及 A.heap-size,表示堆中存储了多少元素数组 A。也就是说,虽然 A[1 .. A.length] 可能包含数字,但只有 A[1..A.heap-size] 中的元素,其中 0 <= A.heap-size <= A.length , 是堆的有效元素。
如果我将一个数组实现为std::vector<T> Arr
,那么它的大小将是Arr.size
,但它的 heap_size 目前是什么超出了我的范围。