【发布时间】:2012-03-22 11:22:05
【问题描述】:
我有一个排序的双精度数组(实际上是纬度),它们相对均匀地分布在 -10 到 -43 的范围内。现在,如果我对该列表进行二进制搜索,我会得到 O(log N)。
但是,我可以通过查找表来进一步优化,其中我有 34 个键(-10 到 -43),然后可以直接跳转到该数字的起点。
例如:-23.123424 首先查找键 23 并知道所有 -23 值的起止范围。然后我可以从中间进行二进制搜索。
我的 Big-O 会是什么样子?
【问题讨论】:
-
听起来您正在尝试实现非常类似于skip list
-
@BrianRoach 虽然,即使是跳过列表也具有 O(log n) 查找复杂度。与普通二叉树相比,它们的唯一优势是它们的自动平衡特性。
标签: big-o binary-search