【问题标题】:how to combine two red black tree efficiently如何有效地组合两棵红黑树
【发布时间】:2014-06-28 07:40:06
【问题描述】:

两棵左倾红黑树T1和T2,T1中有n1个条目,T2中有n2个条目,T1中的所有条目都是少于 T2 中的条目,找到一种方法将这两个树组合起来,复杂度为 O(log n1 + log n2)。

任何人都有任何想法,完全没有头绪。

【问题讨论】:

  • 看起来像锻炼。展示您的尝试,我们将在此基础上为您提供帮助。
  • 你敏锐地发现,这是一个练习,我的尝试是试图找到 T2 中的最小节点 x,这需要 logn2 时间,然后将 T1 的根直接连接到 x。左,这需要恒定的时间,然后任何左/右旋转和翻转颜色,我很确定这是正确的方式,但我很困惑详细说明旋转/颜色翻转如何花费时间与 logn1,

标签: java complexity-theory red-black-tree


【解决方案1】:

我认为这是不可能的。要对N 元素执行一些甚至非常简单的操作(n2 对于您的情况,您需要O(n2) minimum)。所以,我认为你必须做正常的添加,你会得到O(N * log(N)) 的复杂性。

【讨论】:

    猜你喜欢
    • 2012-07-23
    • 2021-12-22
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 2016-07-04
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多