Algorytmy i struktury danych · Middle · Pytanie 13 z 75

Co zwróci to wyszukiwanie binarne, gdy target nie ma w tablicy?

function lowerBound(arr, target) {
  let lo = 0, hi = arr.length;
  while (lo < hi) {
    const mid = (lo + hi) >> 1;
    if (arr[mid] < target) lo = mid + 1;
    else hi = mid;
  }
  return lo;
}

Wyjaśnienie

To lower bound: pierwszy indeks z wartością >= target. Jeśli wszystkie wartości są mniejsze, zwraca arr.length. Na nim opiera się wiele wariantów: liczenie wystąpień, szukanie zakresów, wstawianie do posortowanej tablicy.

Do poczytania

Błąd w pytaniu

Algorytmy i struktury danych · Middle · pytanie 13

Sprawdź się

Rozwiąż test Algorytmy i struktury danych · Middle: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test