Что такое бинарный поиск

Ответ

Бинарный поиск — это алгоритм поиска элемента в отсортированном массиве, который работает за время O(log n).

Принцип работы:

  1. Сравниваем искомый элемент с элементом в середине массива.
  2. Если элемент равен середине — поиск завершен.
  3. Если элемент меньше — ищем в левой половине.
  4. Если элемент больше — ищем в правой половине.
  5. Повторяем, пока не найдем элемент или не убедимся в его отсутствии.

Пример на JavaScript:

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

Важно: массив должен быть отсортирован, иначе алгоритм не сработает.

Ответ 18+ 🔞

Да ты послушай, какой прикол придумали, чтобы не перебирать всё в лоб, как последний распиздяй! Бинарный поиск, ёпта. Штука для отсортированного массива, которая работает за O(log n), то есть овердохуища быстрее, чем обычный перебор.

Как это, блядь, работает:

  1. Берёшь и смотришь на самый середнячок массива.
  2. Если там сидит твой искомый элемент — ну, ебать, повезло, нашёл!
  3. Если твой элемент меньше этой середки — значит, он спрятался где-то слева, в левой половинке. Ищешь там.
  4. Если больше — ну ясный пень, он удрал в правую половину. Лезешь туда.
  5. И так по кругу, пока не накопаешь свою цель или не поймёшь, что её тут нихуя нет.

Вот, смотри, как на JavaScript это выглядит:

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

И главное, запомни, как отче наш: массив должен быть отсортирован, иначе этот весь цирк с конями — нихуя не сработает. Алгоритм просто с ума сойдёт и будет искать хуй в пальто.