使用单调的值序列搜索数组

时间:2015-04-25 22:13:33

标签: arrays search sequence binary-search

我有一个大数组,其中值在长子序列中单调上下(无关系)(这样的序列可以是任意数量和任意大的任何大小,当然> 2个术语)。

小规模的例子:

1 2 3 4 5 9 7 4 3 -2 -5 -7 3 5 34 56 67 78 89 90 8 6 2 -4 -5 ......

等等。

我有兴趣找到任何(只是 1 ,而不是全部)结束增加序列的值,以及新的减少序列开始的位置。

这样做的最佳方法是什么?复杂性是什么?

(我的直觉是这可能与二进制搜索类似,所以我猜一个O(logN),但不确定这是否正确)

1 个答案:

答案 0 :(得分:0)

你不能在这里应用二进制搜索,因为给定的序列没有排序。 您可以通过搜索下一个元素小于该元素的第一个元素来在o(n)中执行此操作。 如上面的示例9将回答