是否可以通过布尔数组在o(logn)运行时间内找到一个假值?数组的索引从0到n-1。
如果是,我们将如何在java中实现它伪代码没问题。

最佳答案

一般来说,答案是“否”:除非您知道数组项的顺序,否则您不能在O(N)中搜索单个值。
例如,如果对数组进行排序,则可以在O(log N)中找到正确的位置。
因为boolean数组被排序意味着所有falses(如果有的话)都在开头,所有trues(如果有的话)都在结尾如果是这种情况,可以使用二进制搜索在对数时间内找到“分界点”。

10-08 09:08