Nagu mainitud vastuses lingitud küsimusele, on levinud viis, kuidas algoritmil on ajaline keerukus O(log n), et see algoritm töötab, vähendades korduv alt sisendi suurust mõne konstantse teguriga igal iteratsioonil.
Mis on log n tähendus?
O(log N) tähendab põhimõtteliselt aeg tõuseb lineaarselt, n aga eksponentsiaalselt. Nii et kui 10 elemendi arvutamiseks kulub 1 sekund, kulub 100 elemendi arvutamiseks 2 sekundit, 1000 elemendi arvutamiseks 3 sekundit jne. See on O(log n), kui me jaga ja valluta tüüpi algoritme, nt kahendotsingut.
Mis on O ja log n?
Suuruse n sisestamisel sooritab algoritm O(n) sammud proportsionaalselt n-ga, samas kui teine algoritm O(log(n)) teostab samme ligikaudu log(n). On selge, et log(n) on väiksem kui n, seega on keerukuse algoritm O(log(n)) parem.
Kuidas te log n arvutate?
Idee seisneb selles, et algoritm on O(log n), kui struktuuri 1-ga kerimise asemel jagate struktuuri ikka ja jälle pooleks ning teete iga jaotuse jaoks konstantse arvu toiminguid. Otsingualgoritmid, mille puhul vastuseruum jagatakse, on O(log n).
Mis on log n Square?
Logi ^2 (
) tähendab, et see on proportsionaalne log väärtusega log probleemikorral.
. Logi(
)^ 2 tähendab, et see onvõrdeline ruuduga log.