标签: search binary
让我们想象两个这样的数组: [8,2,3,4,9,5,7]
[0,1,1,0,0,1,1]
如何仅在数字低于1的数字中执行二进制搜索,忽略其余部分? 我知道这可以在O(log n)比较中,但是我当前的方法比较慢,因为它必须经过所有的0才能达到1。
答案 0 :(得分:1)
如果你点击一个下面为0的数字,你需要在两个方向上扫描一个数字低于1的数字,直到找到它为止 - 或者本地搜索空间已经用尽。由于1的扫描是线性的,0s与1s的比率决定了所得到的算法是否仍然比线性更快。