Task 2. Найти минимальный элемент в отсортированном по возрастанию и циклически сдвинутом массиве

Task 2. Найти минимальный элемент в отсортированном по возрастанию и циклически сдвинутом массиве

UniLecs

Задача: Дан отсортированный по возрастанию массив, но циклически сдвинут.

Пример, [3, 4, 5, 6, 7, 8, 1, 2]

Написать алгоритм, ктр оптимально находит минимальный элемент в таком массиве.

Идея: Можно найти минимальный элемент простым перебором всех элементов, но т.к. мы знаем, что массив отсортирован по возрастанию мы можем решить эту задачу более оптимально.

Мы будем делить массив пополам и сравнивать крайние точки двух массивов. Идея в том чтобы найти отрезок сдвига, когда отрезок будет из 2-х точек мы найдем минимальный элемент.

Реализация: напишем нашу функцию поиска минимального элемента в массиве на JS

реализация на JS

https://gist.github.com/unilecs/2132879966f05e630fd0ef8121df1b89


Тест:
https://jsfiddle.net/unilecs/3rL08c37/

Report Page