Așa cum se menționează în răspunsul la întrebarea legată, o modalitate obișnuită ca un algoritm să aibă complexitate în timp O(log n) este ca acel algoritm să să lucreze reducând în mod repetat dimensiunea intrării de un factor constant la fiecare iterație.
Care este sensul log n?
O(log N) înseamnă practic timp crește liniar, în timp ce n crește exponențial. Deci, dacă este nevoie de 1 secundă pentru a calcula 10 elemente, va dura 2 secunde pentru a calcula 100 de elemente, 3 secunde pentru a calcula 1000 de elemente și așa mai departe. Este O(log n) atunci când împărțim și cucerim tipuri de algoritmi, de exemplu căutare binară.
Ce este O și jurnalul n?
Pentru introducerea dimensiunii n, un algoritm al lui O(n) va efectua pași proporționali cu n, în timp ce un alt algoritm al lui O(log(n)) va efectua pași aproximativ log(n). În mod clar, log(n) este mai mic decât n, prin urmare algoritmul de complexitate O(log(n)) este mai bun.
Cum se calculează log n?
Ideea este că un algoritm este O(log n) dacă în loc să defilați printr-o structură 1 cu 1, împărțiți structura în jumătate din nou și din nou și faceți un număr constant de operații pentru fiecare împărțire. Algoritmii de căutare în care spațiul de răspuns continuă să fie împărțit sunt O(log n).
Ce este log n Square?
Log ^2 (
) înseamnă că este proporțional cu log din log pentru o problemă de dimensiunea
. Log(
)^ 2 înseamnă că esteproporțional cu pătratul din log.