Złożoność czasowa z Wyszukiwanie binarne Jest O(log n) , Gdzie N to liczba elementów tablicy. W każdym kroku dzieli tablicę na pół. Złożoność przestrzeni Jest O(1) ponieważ wykorzystuje stałą ilość dodatkowej przestrzeni.
cm na stopy i cale

Przykład algorytmu wyszukiwania binarnego
| Aspekt | Złożoność |
|---|---|
| Złożoność czasu | O(log n) |
| Złożoność przestrzeni | O(1) |
Poniżej wymieniono złożoność czasową i przestrzenną algorytmu wyszukiwania binarnego.
Złożoność czasowa Algorytm wyszukiwania binarnego :
Najlepsza złożoność czasowa algorytmu wyszukiwania binarnego: O(1)
Najlepszym przypadkiem jest sytuacja, gdy element znajduje się w środkowym indeksie tablicy. Aby znaleźć element docelowy, wystarczy jedno porównanie. Zatem najlepsza złożoność przypadku to O(1) .
Średni czas złożoności przypadku algorytmu wyszukiwania binarnego: O(log N)
Rozważ tablicę arr[] długości N i element X być znalezionym. Mogą być dwa przypadki:
- Przypadek 1: Element jest obecny w tablicy
- Przypadek 2: Element nie występuje w tablicy.
Tam są N Przypadek 1 i 1 Przypadek 2. Zatem całkowita liczba przypadków = N+1 . Teraz zwróć uwagę na następujące kwestie:
- Element o indeksie N/2 można znaleźć w 1 porównanie
- Elementy o indeksach N/4 i 3N/4 można znaleźć w 2 porównania.
- Elementy o indeksach N/8, 3N/8, 5N/8 i 7N/8 można znaleźć w 3 porównania i tak dalej.
Na tej podstawie możemy stwierdzić, że elementy wymagające:
kolejka priorytetowa
- 1 porównanie = 1
- 2 porównania = 2
- 3 porównania = 4
- X porównania = 2 x-1 Gdzie X należy do zakresu [1, logN] ponieważ maksymalne porównania = maksymalny czas N można zmniejszyć o połowę = maksymalna liczba porównań umożliwiająca osiągnięcie pierwszego elementu = logN.
Czyli całkowite porównania
= 1*(elementy wymagające 1 porównania) + 2*(elementy wymagające 2 porównań) + . . . + logN*(elementy wymagające porównania logN)
= 1*1 + 2*2 + 3*4 + . . . + logN * (2logN-1)
= 2spokój* (logN – 1) + 1
= N * (logN – 1) + 1
Całkowita liczba przypadków = N+1 .
Dlatego średnia złożoność = ( N*(logN – 1) + 1)/N+1 = N*logN / (N+1) + 1/(N+1) . Tutaj dominującym terminem jest N*logN/(N+1), co jest w przybliżeniu spokój . Zatem średnia złożoność przypadku wynosi O(logN)
leksykograficznie
Najgorsza złożoność czasowa algorytmu wyszukiwania binarnego: O(log N)
Najgorszy przypadek będzie, gdy element będzie obecny na pierwszej pozycji. Jak widać w przeciętnym przypadku, porównanie wymagane do osiągnięcia pierwszego elementu wynosi spokój . Zatem złożoność czasowa w najgorszym przypadku wynosi O(logN) .
Złożoność przestrzeni pomocniczej algorytmu wyszukiwania binarnego
The złożoność przestrzeni pomocniczej z Algorytm wyszukiwania binarnego Jest O(1) , co oznacza, że wymaga stałej ilości dodatkowego miejsca niezależnie od rozmiaru tablicy wejściowej. Dzieje się tak, ponieważ wyszukiwanie binarne jest algorytmem iteracyjnym, który nie wymaga żadnych dodatkowych struktur danych ani rekurencji rosnącej wraz z rozmiarem danych wejściowych. Chociaż możemy również zaimplementować wyszukiwanie binarne rekurencyjnie.