Aika monimutkaisuus / Binäärihaku On O(log n) , missä n on taulukon elementtien lukumäärä. Se jakaa taulukon puoliksi jokaisessa vaiheessa. Avaruuden monimutkaisuus On O(1) koska se käyttää jatkuvasti ylimääräistä tilaa.
muuntaa merkkijono char javaksi

Esimerkki binäärihakualgoritmista
| Aspekti | Monimutkaisuus |
|---|---|
| Aika monimutkaisuus | O(log n) |
| Avaruuden monimutkaisuus | O(1) |
Binaarihakualgoritmin aika- ja tilamonimutkaisuus on mainittu alla.
Aika monimutkaisuus Binäärihakualgoritmi :
Binäärihakualgoritmin paras tapaus-aika monimutkaisuus: O(1)
Paras tapaus on, kun elementti on taulukon keskiindeksissä. Kohdeelementin löytämiseen tarvitaan vain yksi vertailu. Eli paras tapauksen monimutkaisuus on O(1) .
Binäärihakualgoritmin keskimääräinen tapausaika monimutkaisuus: O(log N)
Harkitse joukkoa arr[] pituudesta N ja elementti X löydettäväksi. Tapauksia voi olla kaksi:
kuinka muuttaa merkkijono int
- Tapaus1: Elementti on taulukossa
- Tapaus2: Elementti ei ole taulukossa.
On N Tapaus 1 ja 1 Tapaus 2. Joten tapausten kokonaismäärä = N+1 . Huomaa nyt seuraava:
- Elementti indeksillä N/2 löytyy 1 vertailu
- Indeksin N/4 ja 3N/4 elementit löytyvät 2 vertailuja.
- Indeksien N/8, 3N/8, 5N/8 ja 7N/8 elementit löytyvät 3 vertailut ja niin edelleen.
Tämän perusteella voimme päätellä, että elementit, jotka vaativat:
- 1 vertailu = 1
- 2 vertailua = 2
- 3 vertailua = 4
- x vertailut = 2 x-1 missä x kuuluu sarjaan [1, logN] koska maksimivertailut = maksimiaika N voidaan puolittaa = enimmäisvertailut 1. elementin saavuttamiseksi = logN.
Eli kokonaiset vertailut
= 1*(elementit, jotka vaativat 1 vertailun) + 2*(elementit, jotka vaativat 2 vertailua) + . . . + logN*(logN-vertailua vaativat elementit)
= 1*1 + 2*2 + 3*4 +. . . + logN * (2logN-1)
= 2rauhoittaa* (logN – 1) + 1
= N * (logN – 1) + 1
Tapausten kokonaismäärä = N+1 .
Siksi keskimääräinen monimutkaisuus = ( N*(logN – 1) + 1)/N+1 = N*logN / (N+1) + 1/(N+1) . Tässä hallitseva termi on N*logN/(N+1), joka on suunnilleen rauhoittaa . Joten tapauksen keskimääräinen monimutkaisuus on O(logN)
javascript lähimpänä
Binaarihakualgoritmin pahimmassa tapauksessa monimutkaisuus: O(log N)
Pahin tapaus on, kun elementti on ensimmäisessä paikassa. Kuten keskimääräisessä tapauksessa nähdään, vertailu, joka vaaditaan ensimmäisen elementin saavuttamiseksi, on rauhoittaa . Joten aika monimutkaisuus pahimmassa tapauksessa on O(logN) .
Binaarihakualgoritmin aputilan monimutkaisuus
The aputilan monimutkaisuus -lta Binäärihakualgoritmi On O(1) , mikä tarkoittaa, että se vaatii jatkuvan määrän lisätilaa syöttötaulukon koosta riippumatta. Tämä johtuu siitä, että binäärihaku on iteratiivinen algoritmi, joka ei vaadi ylimääräisiä tietorakenteita tai rekursiota, joka kasvaa syötekoon mukaan. Voimme kuitenkin myös toteuttaa binaarihaun rekursiivisesti.