Table of Contents
Hakualgoritmien aikamonimutkaisuuden ymmärtäminen on olennaista niiden tehokkuuden arvioimiseksi datarakenteissa. Se auttaa valitsemaan sopivimman algoritmin tiettyihin sovelluksiin ja optimoimaan suorituskykyä.
Lineaarinen haku
Lineaarinen haku tarkistaa jokaisen osan luettelossa peräkkäin, kunnes kohde löytyy tai lista päättyy. Sen aikamonimutkaisuus vaihtelee kohteen sijainnin mukaan.
Jos elementti ei ole läsnä tai lopussa, algoritmi tutkii kaikki kappaleet, mikä johtaa aikakompleksiin O(n).
Binaarihaku
Binary-haku toimii lajiteltuihin tietoihin jakamalla hakuväli toistuvasti kahtia. Se vertaa kohdetta keskimmäiseen osaan päättääkseen, kumpi puoli jatkaa hakua.
Binäärihaun aikakompleksisuus on O(log n)[ pahimmassa tapauksessa, jolloin se on huomattavasti nopeampi kuin suurten tietoaineistojen lineaarinen haku.
Hash-pöydän haku
Hash-pöydissä käytetään hash-toimintoa, jolla kartoitat avaimet tiettyihin paikkoihin nopeaan tietojenhakuun. Hakutoiminnoilla on yleensä jatkuva aikamonimutkaisuus.
Ihanteellisissa olosuhteissa aikakompleksisuus on O(1). Törmäykset voivat kuitenkin heikentää suorituskykyä pahimmassa tapauksessa O(n].
Yhteenveto hakusta Algoritmikompleksit
- Lineaarinen haku: O(n)
- Binaarihaku: O(log n)
- Haku hae tästä taulukosta: O(1) keskimäärin