我一直在努力确定自平衡二叉树的高度,知道它的节点数(N),我带有公式:
height = ceilling [log2(N + 1)],其中ceilling [x]是不小于x的最小整数。
事情是我在互联网上找不到这个公式,看起来很准确。
是否有任何自平衡二叉树的情况,这个公式会失败?
那么确定树高的通用公式是什么?
答案 0 :(得分:2)
Wikipedia的Self-balancing binary search tree文章中有一个公式。
h >= ceilling(log2(n+1) - 1) >= floor(log2(n))
最低身高为floor(log2(n))
。然而,值得注意的是
BST项目插入的最简单算法可能会在相当常见的情况下产生高度为n的树。例如,当项目按排序键顺序插入时,树将退化为具有n个节点的链接列表。
因此,您的公式与“良好近似”公式(仅偏1)相差不远,但考虑到n
和log2(n)
之间的范围可能相当宽。