作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
红黑树K插入K删除后最多需要旋转多少圈?
我认为它是 3K,因为在插入的最坏情况下,我们为每次插入执行 2 次旋转,为每次删除执行 1 次旋转。我走在正确的轨道上吗?
最佳答案
与 AVL 树相比,删除的旋转可以传播到根(尽管插入最多有一个(双)旋转),RB 树需要一个常量(插入最多 2 个,删除最多 3 个) ) 旋转次数。在 RB 树中删除期间可能花费对数级多的时间是可能传播到根的重新着色,这意味着插入和删除对于 AVL 和 RB 树具有相同的渐近线。
(有兴趣的可以找这些东西的分析in this script。)
关于您的问题,最多 3K 是正确的(但显然旋转的计数与链接脚本略有不同)。
关于algorithm - 红黑树 - K 插入和 K 删除所需的最大旋转次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22633129/
我正在实现红黑 SOR 的并行版本。 我想获得每个进程的最大误差的 MPI_Allreduce 部分不起作用。它永远不会改变,即使只有一个过程,它也会给出高于 2.0 的值。怎么回事?? 这是代码,有
我为拉普拉斯方程(一个简单的加热板问题)在我的红黑 Gauss-Seidel 求解器中添加了 OpenACC 指令,但是 GPU 加速的代码并不比 CPU 快,即使对于大问题也是如此。 我还编写了一个
我是一名优秀的程序员,十分优秀!