Во время подготовки к техническому интервью я наткнулся на этот интересный вопрос:
Вам задан массив, который отсортирован и затем повернут.
Пример
Пусть arr = [1,2,3,4,5]
, который сортируется, а затем поворачивается, произносит дважды вправо, чтобы дать
[4,5,1,2,3]
Теперь, как лучше всего искать в этом отсортированном + повернутом массиве?
Можно развернуть массив, а затем выполнить двоичный поиск. Но это не лучше, чем делать линейный поиск во входном массиве, поскольку оба являются наихудшим случаем O (N).
Просьба указать некоторые указатели. Я много раз искал специальные алгоритмы для этого, но не смог найти.
Я понимаю c и С++