何时使用二叉树比B-树更好?

3

当将二叉树或B-Tree存储在诸如磁盘或磁带之类的二级存储设备上时,二叉树是否比B-Tree更具优势?

在一份任务中,我被问到“何时B-Tree比二叉树更具优势?”

我得出的结论是B-Tree更好,因为它需要较少的磁盘访问(每个节点访问读取更多数据),并且跳转到的节点较少才能到达最终节点。但是,问题的措辞暗示着存在某种情况下二叉树实际上比B-Tree更具优势。那么,在将它们存储在二级存储器上时,是否存在二叉树比B-Tree更高效的情况呢?


我认为最大的优点之一是二叉树可以作为隐式数据结构存储在非常紧凑的数组中。使用连续的内存在性能上有巨大的优势。 - Shashank
请考虑将与计算机科学相关的问题发布到 cs.stackexchange - Realz Slaw
1个回答

1
不正确将排序树(B-树)和简单二叉树进行比较,它们并不相等。因此,我认为您指的是二叉搜索树。
B-树的设计目的是在数据存储在相对较慢的存储器上时提高效率。例如,当您从簇大小为4kb的文件系统中加载或保存数据时,无论您需要该范围0..4kb中多少数据,读取1个字节或4kb将花费相同的时间,而且确实需要时间。 B-树考虑到了这一点并加以利用。因此,在所有正常/常见的使用场景中,使用B-树(从所使用的空间和性能的角度来看)将更加高效。

是的,你的假设是正确的,我想比较二叉搜索树和B-树,对此感到抱歉。谢谢你的回答,看来我的思路是正确的。 - Brad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接