Бинарный поиск
Алгоритмы поискаОписание
Бинарный поиск — это алгоритм поиска элемента в отсортированном массиве путём многократного деления интервала поиска пополам. На каждом шаге алгоритм сравнивает средний элемент массива с целевым значением и исключает половину, в которой искомый элемент заведомо отсутствует.
Зачем это нужно
Бинарный поиск — один из фундаментальных алгоритмов, который постоянно используется в веб-разработке: поиск по отсортированным данным, автодополнение, поиск по индексам баз данных, реализация функции bisect. Знание бинарного поиска помогает понимать, как работают индексы в базах данных и почему они такие быстрые.
Визуализация
23
20
51
82
123
164
235
386
567
728
919
L = 0R = 9
Начальное состояние: отсортированный массив и целевое значение 23
Диапазон
Середина
Найдено
Исключено
Шаг 1 из 7
Скорость:
Сложность
Лучший случайO(1)
Средний случайO(log n)
Худший случайO(log n)
Сложность по памятиO(1)
Пример кода
function binarySearch(arr: number[], target: number): number {let left = 0;let right = arr.length - 1;while (left <= right) {// Find the middle indexconst mid = Math.floor((left + right) / 2);if (arr[mid] === target) {return mid; // Found the target} else if (arr[mid] < target) {left = mid + 1; // Search right half} else {right = mid - 1; // Search left half}}return -1; // Target not found}// Usage exampleconst sortedArray = [2, 5, 8, 12, 16, 23, 38, 56, 72, 91];const result = binarySearch(sortedArray, 23);console.log(result); // 5 (index of 23)