基于数组的堆中最后一行的大小是多少
What is size of last row in array based heap
在基于数组的堆中,假设项目以广度第一顺序插入,可以很容易地评估深度为 D 的每一行的大小。由于堆是平衡树。
RowSize = pow(2, D);
最大深度也可以很容易地计算出来。
MaxD = log2(Count);
但是最后一行的大小是多少。如何知道最深的叶子数?
理论最大值是 MaxD 的 2 次方。但它可以小于此值。我想知道那个数字
最后一行的大小是
Count - (int)pow(2, maxD) + 1;
感谢 wolframAlpba 揭示公式。
在基于数组的堆中,假设项目以广度第一顺序插入,可以很容易地评估深度为 D 的每一行的大小。由于堆是平衡树。
RowSize = pow(2, D);
最大深度也可以很容易地计算出来。
MaxD = log2(Count);
但是最后一行的大小是多少。如何知道最深的叶子数?
理论最大值是 MaxD 的 2 次方。但它可以小于此值。我想知道那个数字
最后一行的大小是
Count - (int)pow(2, maxD) + 1;
感谢 wolframAlpba 揭示公式。