【问题标题】:Why are Red_Black trees better than 2-3 trees?为什么 Red_Black 树比 2-3 树好?
【发布时间】:2011-05-12 05:12:36
【问题描述】:

除了红黑更容易实现之外。

在两棵树中,所有操作(插入、删除、查找)的时间复杂度似乎都是 O(log n)。我遗漏的这些操作之间有什么区别吗?

如果你用谷歌搜索“red-black”“2-3 tree”,你找不到两者之间的任何比较..

我开始明白,红黑人通常被认为是最好的。 (我听说 [EDIT] 为什么红黑树比 AVL 树(相同类别)[/EDIT] 的原因之一是“应用到持久数据结构”的效率,因为重新平衡效率;但这并没有不回答我的问题..)

【问题讨论】:

    标签: performance tree binary-tree red-black-tree operation


    【解决方案1】:

    我不熟悉 2-3 树,但我很确定 B 树是持久性数据库/文件系统的首选。红/黑更常用于内存

    【讨论】:

    • 现在,当您说“用于内存”时,这究竟是什么意思? (我以前听说过,但我不确定它指的是什么)。这是否意味着您从字面上加载了 RAM 中的红黑程序?那么拥有庞大的数据集是不可能的?
    • 没关系,伙计,绝对是这样;我想通了!这就是为什么 B 树用于持久化数据库和文件系统!
    • “在内存中使用”不是很清楚。我的意思通常是短期的、非持久性的 RAM 而不是硬盘。示例 - t44444你打开一个解释器,创建这样一个树(可能是一个字典,或者由 B-Tree 实现的东西)并开始进行插入和读取
    【解决方案2】:

    直接来自Wikipedia entry for B-Trees(2 3树是其中的一种):

    与自平衡二分搜索不同 树,B-树被优化为 读写大的系统 数据块。它通常用于 数据库和文件系统。

    【讨论】:

    • 好的,所以 2-3 棵树实际上在处理大块数据的读写时更快。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 2021-02-15
    • 1970-01-01
    • 2012-02-08
    相关资源
    最近更新 更多