二进制搜索树

时间:2016-08-28 04:48:46

标签: algorithm binary-search-tree

提出一个算法,从一个最初空的BST开始,然后制作' n'随机插入。使用一个统一的随机数生成器来获取要插入的值。测量生成的BST的高度,并将此高度除以log2n。对于n = 100,500,1000,2000,3000 ....,10000这样做。绘制比率高度/ log2n作为n的函数。比率应近似恒定(约为2)。验证是这样的。

我的理解
现在我们都知道BST的高度是log2n,其中' n'是树中元素的数量。如果它是左倾斜/右倾斜树,则高度等于' n'。因此,如果我们在这里测量高度,我们应该假设插入的高度是随机的。我的意思是,该比率如何总是在2左右。
我正在撞击这个。

1 个答案:

答案 0 :(得分:1)

  

如果是左倾斜/右倾斜树,则高度等于' n'。因此,如果我们在这里测量高度,我们应该假设插入的高度是随机的

此二叉树的高度为n。你不必在这里做任何事情。此外,完全平衡的BST的高度是log(n)(通常不是)

提出你的问题,我假设你要求找到随机构建二叉树的高度。在这种情况下,您不必计算任何特定二叉树的高度。

即使偏斜树的高度为n,它在均匀随机分布中生成的可能性也非常小。因此,如果你计算随机BST的高度,那么它将变为O(log n)。

要进行准确计算,请参阅Randomly build BST has logarithmic height