【发布时间】:2020-10-02 11:19:50
【问题描述】:
在给定大数据的情况下,哪个更快(例如长度(数据)= 10 亿,其中 data[i] 是字符串类型)?
- 平衡二叉树上的二叉搜索
- 对排序列表进行二分搜索
【问题讨论】:
-
这取决于具体的用法。请给出一个具体的例子并标记一个你所询问的数据库。
在给定大数据的情况下,哪个更快(例如长度(数据)= 10 亿,其中 data[i] 是字符串类型)?
【问题讨论】:
如果在排序列表下,一个人理解一个数组(O(1) 访问),那么 2(数组)只是稍微快一点,因为平衡二叉树具有相同的复杂性,但更间接,需要空间,如计算索引。
两者都需要对数深度,并且由于树是最佳平衡的,因此深度是相同的。
这不适用于正常的二叉树,具有不同的脊柱长度(到叶子的路径)和尴尬的值分布(在 1-100 中具有根 10)。很明显,对于平衡的二叉树,需要做很多工作=它很昂贵。对于海量数据,可以从该排序数组开始,然后从中构建树。
因此,最佳平衡二叉树是不必要的开销。
【讨论】: