【发布时间】:2015-08-04 18:13:16
【问题描述】:
我正在自学“算法设计手册”一书。我目前正在学习第 4 章(HeapSort),在第 111 页有一个我无法理解的方程式
它是这样的
因此,空间效率要求我们不允许在我们的 树 - 即,每个级别都尽可能多地打包。如果是这样,只有 最后一级可能不完整。通过包装最后的元素 尽可能向左的水平,我们可以表示一个n键树 恰好使用数组的 n 个元素。如果我们不执行这些 结构约束,我们可能需要一个大小为 2n 的数组来存储 相同的元素。由于除了最后一个级别之外的所有级别都始终被填充,因此 n 个元素堆的高度 h 是对数的,因为: so h = lg n
我不明白的是如何从上述等式确定 h =logn ?我的数学很生疏,但据我所知应该是 h =log((n+1)/2)
我希望这里有读过这本书的人能够帮助我理解这一点
在此致谢
【问题讨论】: