gpt4 book ai didi

algorithm - RB 树 : search execution time

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:07:08 25 4
gpt4 key购买 nike

我必须使用 RB 树为“算法和数据结构”类项目实现一个区间树,所以它被要求绘制插入和搜索 T(n) .我知道这个函数的上界一定是对数曲线,图中确实显示了这一点,但我对“奇怪的函数趋势”仍然有些怀疑。我写了一个循环,它插入一个随机间隔,并在同一步骤中为 0 < N < 100000 的每个值在树中搜索它。 ,这是结果:

enter image description here

期待类似的趋势是否正确?

最佳答案

这是完全合理的预期。

插入红/黑树有两个组成部分:一个基线 Θ(log n) 组件,用于下降到叶子以插入一个元素,然后一些额外的“修复”工作来维护红/黑树不变量。事实证明,第二个组件的摊销时间为 O(1),这意味着平均修复只需要恒定的工作量,但修复工作时不时会增加。

如果您已经看到红/黑树和 2-3-4 树之间的联系,这可能会更容易理解一些。 2-3-4 树中的插入通常通过简单地向叶节点添加键来停止。有时,您必须拆分一个 4 节点并将 key 传播到树中更高的节点,这通常会立即停止。但是,每隔一段时间,您就必须拆分一片叶子,然后拆分其上方的一个节点,然后将 key 向上传播两层。像这样进行插入时,您将获得的典型模式是,您将获得一系列快速操作,然后是一个稍微慢一点的操作,然后是一些更快的操作,然后是一个稍微慢一点的操作,然后是一些更快的操作,然后一个比其他的更慢,等等。你似乎在你的情节中得到了这个,所以我认为这没有什么可担心的。

希望这对您有所帮助!

关于algorithm - RB 树 : search execution time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21585961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com