Поиск максимального или минимального значения в последовательности, которая монотонно возрастает, а затем монотонно убывает, может быть выполнен за O (log n).
Однако, если я хочу проверить, существует ли число в такой последовательности, можно ли это также сделать за O (log n)?
Я не думаю, что это возможно. Рассмотрим этот пример: 1 4 5 6 7 10 8 3 2 0.
В этом примере, если мне нужно выяснить, содержит ли последовательность «2», у меня нет никаких условий для разделения пространства поиска на половину исходного пространства поиска. В худшем случае это будет O(n), так как вам нужно проверять обе половины, когда мы пытаемся найти 2.
Я хотел бы знать, будет ли этот поиск выполняться за время O (log n)?