Таринская Татьяна

Образование, карьера и проекты в IT

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

Алгоритм поиска элемента в отсортированном массиве путем деления пространства поиска пополам на каждом шаге.

← Назад к списку алгоритмов

Сложность

Временная сложность: O(log n)

Пространственная сложность: O(1)

Реализация

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; // Элемент не найден
}

Объяснение

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

Примеры

Ввод: arr = [1, 2, 3, 4, 5, 6, 7, 8, 9], target = 5

Вывод: 4 (индекс элемента 5)

Ввод: arr = [1, 2, 3, 4, 5, 6, 7, 8, 9], target = 10

Вывод: -1 (элемент не найден)