我通过以下方法解决了这个问题: -
这两个等式使我得到以下范围的h: -
log d ((n(d-1)+1)/ 2)< = h< = log d ((n-1)(d -1)+1)
但是我无法弄清楚如何从这个不等式中进一步推断出h = big-theta(log d n)?
答案 0 :(得分:2)
n个级别的完整d堆中的项目数是(1-d n )/(1-d)。七级二进制堆包含127个项目。七级4堆将包含5,461(16383/3)个项目。
一个小代数告诉我们在d堆中保存n个项目所需的级别数是log d (n *(d - 1)+ 1)。因此,包含21个项目的4个堆需要log 4 (20 *(4 - 1)+1)或2.96个级别。我们不能有部分级别,所以我们最多可以达到3级。
有关详细信息,请参阅我的博客文章The d-ary heap。
答案 1 :(得分:0)
A more Mathematically correct solution has been provided to my question in math.stackexchange.com. Please refer to the link below to look at the proof:
Thanks.