我正在学习二叉树。因此,对于n个元素,最小高度为h = ceiling(log(n+1)) - 1
,我从n = 2^(h+1) - 1
得到了这个计算方法,但我不明白为什么 ceiling 函数被使用了..我得到n
的大多数值,log(n+1)
是真的,所以我必须使用函数使它成为一个整数,但为什么 ceiling 而不是 floor
答案 0 :(得分:2)
考虑一下n = 2的情况.log(3)介于1和2之间。如果我们下降,则会出现1-1 = 0,这是不正确的。如果我们上限,我们得到2-1 = 1,这是正确的。
如果它对您有所帮助,您可以将其视为需要将部分级别舍入到整个级别,因为它们仍然会计入树的高度。