Контрольная работа по теме "Бинарный поиск"
Задания
1. Напишите функцию find_min_in_rotated_sorted_array
, которая принимает отсортированный, но сдвинутый массив (например, [4, 5, 6, 7, 0, 1, 2]
) и возвращает минимальный элемент в этом массиве. Используйте бинарный поиск для решения задачи.
2. Напишите функцию find_peak_element
, которая принимает массив чисел и возвращает индекс любого пикового элемента. Пиковый элемент — это элемент, который больше или равен своим соседям. Используйте бинарный поиск для решения задачи.
3. Напишите функцию search_insert_position
, которая принимает отсортированный массив и число x
, а затем возвращает индекс, куда можно вставить x
, чтобы массив остался отсортированным. Если x
уже есть в массиве, верните его индекс.
4. Напишите функцию find_x_in_sorted_array_with_duplicates
, которая принимает отсортированный массив, который может содержать дубликаты, и возвращает индекс первого найденного x. Используйте бинарный поиск для решения задачи.
5. Напишите функцию search_in_unknown_length_array
, которая принимает массив неизвестной длины и число x
, а затем возвращает индекс x
или -1
, если элемент не найден. Используйте бинарный поиск для решения задачи.