如何解决二进制搜索哪一个更快?
给定一个大数据(例如length(data)= 10亿,其中data [i]是字符串类型),哪个更快?
- 在平衡的二叉树上进行二分搜索
- 对已排序列表的二分搜索
解决方法
如果在排序列表下一个可以理解一个数组(O(1)访问),那么2(该数组)会稍微快一点,因为平衡的二叉树具有相同的复杂度,但是间接的,需要计算的空间索引。
两者都需要对数深度,并且由于树是最佳平衡的,因此深度是相同的。
对于正常的二叉树而言,这是不正确的,这些树具有不同的书脊长度(到叶子的路径),并且值分布比较笨拙(在1-100中,根为10)。显然,对于平衡的二叉树,需要完成许多工作,这很昂贵。对于海量数据,可以从排序后的数组开始,然后从中构造树。
因此,最佳平衡的二叉树是不必要的开销。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。