logo

Tid og rum kompleksitetsanalyse af binær søgealgoritme

Tidskompleksitet af Binær søgning er O(log n) , hvor n er antallet af elementer i arrayet. Den deler arrayet i to ved hvert trin. Rumkompleksitet er O(1) da det bruger en konstant mængde ekstra plads.

intelligent idé vs formørkelse

Eksempel på binær søgealgoritme



Aspekt Kompleksitet
Tidskompleksitet O(log n)
Rumkompleksitet O(1)

Tids- og rumkompleksiteten af ​​den binære søgealgoritme er nævnt nedenfor.

Tidskompleksitet af Binær søgealgoritme :

Bedste tilfælde tidskompleksitet af binær søgealgoritme: O(1)

Bedste tilfælde er, når elementet er i det midterste indeks af arrayet. Det kræver kun én sammenligning at finde målelementet. Så den bedste sags kompleksitet er O(1) .

Gennemsnitlig sagstidskompleksitet af binær søgealgoritme: O(log N)

Overvej array arr[] af længde N og element x at blive fundet. Der kan være to tilfælde:



  • Sag 1: Element er til stede i arrayet
  • Sag 2: Element er ikke til stede i arrayet.

Der er N Case 1 og 1 Sag 2. Så det samlede antal tilfælde = N+1 . Bemærk nu følgende:

  • Et element ved indeks N/2 kan findes i 1 sammenligning
  • Elementer ved indeks N/4 og 3N/4 kan findes i 2 sammenligninger.
  • Elementer ved indeks N/8, 3N/8, 5N/8 og 7N/8 kan findes i 3 sammenligninger og så videre.

Baseret på dette kan vi konkludere, at elementer, der kræver:

få array længde i c
  • 1 sammenligning = 1
  • 2 sammenligninger = 2
  • 3 sammenligninger = 4
  • x sammenligninger = 2 x-1 hvor x hører til sortimentet [1, logN] fordi maksimale sammenligninger = maksimal tid N kan halveres = maksimale sammenligninger for at nå 1. element = logN.

Altså samlede sammenligninger
= 1*(elementer, der kræver 1 sammenligninger) + 2*(elementer, der kræver 2 sammenligninger) + . . . + logN*(elementer, der kræver logN-sammenligninger)
= 1*1 + 2*2 + 3*4 +. . . + logN * (2logN-1)
= 2berolige* (logN – 1) + 1
= N * (logN – 1) + 1



Samlet antal tilfælde = N+1 .

Derfor er den gennemsnitlige kompleksitet = ( N*(logN – 1) + 1)/N+1 = N*logN / (N+1) + 1/(N+1) . Her er det dominerende led N*logN/(N+1), hvilket er ca berolige . Så den gennemsnitlige sagskompleksitet er O(logN)

bibliotek omdøb linux

Worst case tidskompleksitet af binær søgealgoritme: O(log N)

Det værste tilfælde vil være, når elementet er til stede i den første position. Som det ses i det gennemsnitlige tilfælde, er den sammenligning, der kræves for at nå det første element berolige . Så tidskompleksiteten for worst case er O(logN) .

Auxiliary Space Complexity of Binary Search Algoritme

Det hjælperums kompleksitet af Binær søgealgoritme er O(1) , hvilket betyder, at det kræver en konstant mængde ekstra plads uanset størrelsen på input-arrayet. Dette skyldes, at binær søgning er en iterativ algoritme, der ikke kræver yderligere datastrukturer eller rekursion, der vokser med inputstørrelsen. Selvom vi også kan implementere binær søgning rekursivt.