二叉树什么时候比B树好?

时间:2013-10-07 20:22:18

标签: algorithm binary-tree b-tree

在二级存储设备(如磁盘或磁带)上存储二叉树或B树时,二叉树是否优于B树?

我被问到一个任务“B-Trees什么时候比二叉树有优势?”

我想到的是B-Tree更好,因为它需要更少的磁盘访问(每个节点访问读取更多数据),并跳转到更少的节点以到达最终节点。但问题的措辞方式,它意味着有一个点,二叉树实际上确实具有优于B树的优势。那么,当二叉树存储在二级存储上时,它比B树更好(更有效)吗?

1 个答案:

答案 0 :(得分:1)

比较排序树(B树)和简单二叉树是不正确的,它们不相等。所以我想你的意思是二元搜索树。

当数据存储在相对较慢的存储上时,B-Tree被设计为高效的。例如,当您从簇大小为4kb的文件系统加载或保存数据时,无论您需要多少这个范围0..4kb的数据,读取1字节或4kb需要相同的时间,这将是真正需要的时间。 B树记住这个事实并使用它。因此,在所有正常/一般使用场景中,使用B树将更有效(从使用空间和性能的角度来看)。