Двоичный поиск на Python: как решать + 7 задач с проверкой

Двоичный поиск — это приём, который помогает быстро находить ответ там, где «всё упорядочено» или где есть чёткая граница между «подходит» и «не подходит». В олимпиадных задачах он часто встречается в запросах к отсортированному массиву (например, найти первый элемент не меньше x, последний не больше x, количество в диапазоне), а также в задачах на подбор минимального/максимального значения (время, скорость, порог, размер), которое удовлетворяет условию.

Как распознать двоичный поиск по условию:

Суть приёма: держим границы поиска и каждый раз проверяем середину. Если в середине уже «достаточно» (условие выполняется), сдвигаем правую границу; если нет — левую. Так мы каждый шаг уменьшаем диапазон вдвое и получаем не O(n), а O(log n) проверок, что особенно важно при больших n и множестве запросов.

С чего начать учиться:

Ниже — задачи с автопроверкой и разбором подхода: начнёшь с простых границ в отсортированном массиве и перейдёшь к двоичному поиску по ответу.

Задачи по теме «Двоичный поиск»

Смежные темы

Весь каталог задач

Куда дальше