二进制搜索与差距

时间:2016-04-16 14:41:55

标签: search binary

让我们想象两个这样的数组: [8,2,3,4,9,5,7]

[0,1,1,0,0,1,1]

如何仅在数字低于1的数字中执行二进制搜索,忽略其余部分? 我知道这可以在O(log n)比较中,但是我当前的方法比较慢,因为它必须经过所有的0才能达到1。

1 个答案:

答案 0 :(得分:1)

如果你点击一个下面为0的数字,你需要在两个方向上扫描一个数字低于1的数字,直到找到它为止 - 或者本地搜索空间已经用尽。由于1的扫描是线性的,0s与1s的比率决定了所得到的算法是否仍然比线性更快。