Задания № 24, 25 · ЕГЭ

Двоичный поиск

Поиск элемента в отсортированном массиве делением диапазона пополам
2 мин чтенияСложность: Обновлено 29 сентября 2026

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

Двоичный поискНазвание связано с двоичным делением: на каждом шаге остаются два возможных направления поиска.
Алгоритм поиска значения в отсортированном массиве, который последовательно делит диапазон возможных позиций пополам и сравнивает искомое значение со средним элементом. Если значения не совпали, поиск продолжается только в левой или правой половине диапазона.

Как работает

Сначала задаются левая и правая границы диапазона. Вычисляется средняя позиция \(m=\left\lfloor\frac{l+r}{2}\right\rfloor\). Если средний элемент равен искомому, поиск завершён. Если он меньше искомого, левая граница сдвигается вправо: \(l=m+1\). Если он больше, правая граница сдвигается влево: \(r=m-1\). Поиск продолжается, пока \(l\le r\).

\[T(n)=O(\log_2 n)\]1

Логарифмическая сложность означает, что число проверок растёт медленно. Например, для массива из 1 000 элементов потребуется не более примерно 10 делений диапазона. Это важный приём оптимизации алгоритма.

№
Пример

В массиве \([3, 7, 12, 18, 25, 31, 40]\) ищем число 31. Средний элемент — 18, поэтому отбрасываем левую половину. В оставшемся диапазоне средний элемент — 31, значит, искомое значение найдено за две проверки.

!
Не путайте с линейным поиском

Линейный поиск проверяет элементы по очереди и не требует сортировки. Двоичный поиск работает быстро только тогда, когда массив уже упорядочен. Если массив не отсортирован, сравнение со средним элементом не позволяет правильно отбросить половину диапазона.

Проверка

В отсортированном массиве из 32 элементов двоичный поиск выполняет не более какого порядка числа проверок?

Главное за минуту

Главное

  • Двоичный поиск применяется к отсортированному массиву и каждый раз делит диапазон пополам.
  • Границы изменяются по результату сравнения со средним элементом.
  • Сложность двоичного поиска — \(O(\log n)\), что быстрее последовательного просмотра большого массива.