AL

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

Алгоритмы поиска

Описание

Бинарный поиск — это алгоритм поиска элемента в отсортированном массиве путём многократного деления интервала поиска пополам. На каждом шаге алгоритм сравнивает средний элемент массива с целевым значением и исключает половину, в которой искомый элемент заведомо отсутствует.

Зачем это нужно

Бинарный поиск — один из фундаментальных алгоритмов, который постоянно используется в веб-разработке: поиск по отсортированным данным, автодополнение, поиск по индексам баз данных, реализация функции 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 index
const 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 example
const sortedArray = [2, 5, 8, 12, 16, 23, 38, 56, 72, 91];
const result = binarySearch(sortedArray, 23);
console.log(result); // 5 (index of 23)

Задачи на LeetCode