me_edu
Алгоритмы и структуры данных: основыШаг 25 из 35 · 0% пройдено
2. Профессиональный практикум: проект, качество и портфолио
3. Атлас программных моделей: данные, архитектура, API и тесты
Поиск

Бинарный поиск

Шаг 25 из 357 минТеория
Цель

Понять основной механизм темы «Бинарный поиск» без заучивания отдельных терминов.

Как работать

Прочитайте блок один раз целиком, затем вернитесь к схеме или примеру и перескажите идею своими словами.

Критерий

Сформулированное правило, пример применения и одно ограничение метода.

COMPARATIVE CHART · LINEAR SCALE048121620сред.20Линейный O(n)max5Бинарный O(log n)категориязначениеЧтениеmax: Линейный…min: Бинарный…×4.0Среднее 13 · максимум 20 · минимум 5
Для миллиона элементов: ~1 000 000 шагов против ~20
Опорная идея

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

function binarySearch(arr, target) { let low = 0, high = arr.length - 1; while (low <= high) { const mid = Math.floor((low + high) / 2); if (arr[mid] === target) return mid; if (arr[mid] < target) low = mid + 1; // искомое правее else high = mid - 1; // искомое левее } return -1; }

Сложность — O(log n). Это огромный выигрыш: в массиве из миллиона элементов линейный поиск может потребовать миллион проверок, а бинарный — всего около 20 (так как 2²⁰ ≈ миллион).

Аналогия — поиск слова в словаре: вы не листаете подряд, а открываете примерно посередине и сразу понимаете, в какой половине искать дальше. Цена скорости — массив должен быть отсортирован. Если он меняется редко, а ищут часто, бинарный поиск окупается многократно.

Назад

Обсуждение

Войдите, чтобы участвовать в обсуждении.

Пока нет сообщений.