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

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.

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:

  • 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 * (2 logN-1 )
= 2 spokó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)

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.


Najpopularniejsze Artykuły

Kategoria

Ciekawe Artykuły