Algorithm 二叉搜索树分析
在二叉搜索树中,大多数操作的平均计算复杂度表示为O(NlogN)。下面是Algo书中的一段文字片段: 内部路径长度的平均值为D(n)=O(n logn)。因此,预期的深度 任何节点都是O(logn)。例如,随机生成的500个节点 树具有预期深度为9.98的节点 很容易马上说,这一结果意味着 讨论的所有操作的平均运行时间,即插入, 二叉搜索树上的findmin,findmax,delete是O(logn),但这个 这并不完全正确。原因是因为 删除时,不清楚是否所有的二叉搜索树都是相同的 很可能。特别地,上述删除算法有利于 使左子树比右子树更深,因为我们总是 用右子树中的节点替换已删除的节点。确切的 这一策略的效果仍然不得而知,但似乎只是暂时的 理论新颖性。研究表明,如果我们交替插入 删除O(n2)(即n平方的θ)次,然后是树 将具有平方根N的预期θ深度 在25万个随机插入/删除对之后 有点偏右,看起来明显不平衡(平均深度= 12.51) 我对上述文本片段的问题如下:Algorithm 二叉搜索树分析,algorithm,Algorithm,在二叉搜索树中,大多数操作的平均计算复杂度表示为O(NlogN)。下面是Algo书中的一段文字片段: 内部路径长度的平均值为D(n)=O(n logn)。因此,预期的深度 任何节点都是O(logn)。例如,随机生成的500个节点 树具有预期深度为9.98的节点 很容易马上说,这一结果意味着 讨论的所有操作的平均运行时间,即插入, 二叉搜索树上的findmin,findmax,delete是O(logn),但这个 这并不完全正确。原因是因为 删除时,不清楚是否所有的二叉搜索树都是相同的 很可能。特
2)考虑大小511。如果树是完全平衡的,那么它的深度将为9(log(n+1)),这是中包含那么多元素的最小深度。对于随机形状,这是最小值,而不是平均值,平均值必须更大:存在深度为511的形状(注意,虽然深度必须大于log2(N),但它可能仍然是O(logN))。我不知道作者是怎么得到这个数字的。也许是聪明的数学,也许只是运行了一个大样本
4) 我相信在这种情况下运行一个示例:这些树有着正确的沉重外观。然而,很明显,平均而言,删除会使树木不太平衡我认为在上面的511大小中,深度是9而不是8。