logo

Analiza złożoności czasu i przestrzeni algorytmu wyszukiwania binarnego

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.