Вопрос проверяет знание оптимизации алгоритмов.
Бинарный поиск ускоряет поиск элемента в отсортированном массиве, сокращая время с O(n) до O(log n). Он работает, сравнивая искомое значение со средним элементом и отбрасывая половину массива на каждом шаге.
Обычный перебор массива (линейный поиск) имеет сложность O(n), но если массив отсортирован, можно использовать бинарный поиск.
Алгоритм:
Находим середину массива.
Если искомое значение равно среднему элементу — возвращаем его.
Если значение меньше — ищем в левой половине, если больше — в правой.
Повторяем, пока не найдем элемент или не закончится массив.
Пример кода:
function binarySearch(arr, target) {
let left = 0;
let right = arr.length - 1;
while (left <= right) {
const mid = Math.floor((left + right) / 2);
if (arr[mid] === target) return mid;
if (arr[mid] < target) left = mid + 1;
else right = mid - 1;
}
return -1; // Элемент не найден
}Бинарный поиск работает только с отсортированными данными, но гораздо быстрее линейного.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию