Wyszukiwanie binarne
Idea działania
Algorytm działa na zasadzie dziel i zwyciężaj. Zamiast sprawdzać każdy element po kolei (co zajęłoby dużo czasu w dużych zbiorach), algorytm celuje w środek zakresu i decyduje, w którą stronę iść dalej.
Wymaganie wstępne: Tablica musi być posortowana (rosnąco lub malejąco).
Algorytm krok po kroku:
- Definiujemy początek (left) i koniec (right) przeszukiwanego zakresu.
- Wyznaczamy środek (mid).
- Porównujemy element środkowy z szukaną wartością:
- Jeżeli
: Znaleźliśmy element. Zwracamy indeks. - Jeżeli
: Element musi być "na lewo". Przesuwamy koniec zakresu . - Jeżeli
: Element musi być "na prawo". Przesuwamy początek zakresu .
- Jeżeli
- Powtarzamy proces dopóki left nie minie się z right.
Dlaczego jest to "efektywne"? (Złożoność)
Różnica wydajności jest ogromna dla dużych danych.
Złożoność czasowa: