【问题标题】:Seach Cost of Binary Search Tree VS Red-Black Tree二叉搜索树 VS 红黑树的搜索成本
【发布时间】:2018-09-17 13:36:00
【问题描述】:

我知道红黑树只是平衡的二叉搜索树。所以我计算了元素数量为 2^n 的数据集的平均搜索成本(基本上是比较次数)。数据的设计方式使其形成完美的二叉搜索树。然而,在计算了平均成本之后,我意识到红黑树的计算平均搜索成本略高于完美平衡二叉搜索树的平均搜索成本。这是我的桌子:

# of elements    Binary S. Tree     Red-Black Tree
    1          |    1            |   1
    3          |  1.66667        |   1.6667
    7          |  2.42857        |   2.71429
    15         |  3.26667        |   3.4
    31         |  4.16129        |   4.48387
    63         |  5.09524        |   5.50794
    127        |  6.05512        |   6.44882
    255        |  7.03137        |   7.31373
    511        |  8.01761        |   8.40509
    1023       |  9.00978        |   9.45357
    2047       |  10.0054        |   10.4919
    4095       |  11.0029        |   11.5314

我有两个问题:您如何证明这一点,以及红黑树的计算平均成本是否有下限?

【问题讨论】:

    标签: time-complexity binary-search-tree red-black-tree


    【解决方案1】:

    接受的 RB 树的搜索复杂度是摊销 O(log n),即上限和下限。一棵完美平衡的树的搜索复杂度实际上是 O(log n) 而不仅仅是摊销。

    将红黑树指定为任何更严格的界限的困难在于,它在很大程度上取决于实现和插入(甚至可能删除)的数据。例如,如果您通过从已排序的数组中逐一插入项目来构建红黑树,那么您最终将得到一棵最大不平衡的红黑树。但是也可以从该数组创建一个红黑树并使其达到最佳平衡(通过使用红黑算法以外的其他方法创建初始树,并且仅切换到 RB 算法以进行进一步的插入/删除)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 2023-03-08
      • 2013-11-30
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多