Байланышкан суроонун жообунда айтылгандай, алгоритмдин убакыт татаалдыгы O(log n) болушунун кеңири таралган жолу бул алгоритм үчүн киргизүүнүн өлчөмүн кайра-кайра кыскартуу менен иштөө. ар бир итерацияда кандайдыр бир туруктуу фактор менен.
log n деген эмнени билдирет?
O(log N) негизи убакыт сызыктуу, ал эми n экспоненциалдуу жогорулайт дегенди билдирет. Демек, 10 элементти эсептөө үчүн 1 секунд талап кылынса, 100 элементти эсептөө үчүн 2 секунд, 1000 элементти эсептөө үчүн 3 секунд жана башкалар. Бул O(log n) алгоритмдердин түрүн бөлүү жана жеңүү, мисалы, бинардык издөө.
O жана log n деген эмне?
n өлчөмүн киргизүү үчүн, O(n) боюнча алгоритм n га пропорционалдуу кадамдарды аткарат, ал эми башка O(log(n)) алгоритми кадамдарды аткарат болжол менен log(n). Албетте, log(n) nден кичине, андыктан O(log(n)) татаалдык алгоритми жакшыраак.
Сиз n журналын кантип эсептейсиз?
Идея: структураны 1ден 1ге жылдыруунун ордуна, структураны кайра-кайра экиге бөлүп, ар бир бөлүү үчүн туруктуу сандагы операцияларды аткарсаңыз, алгоритм O(log n) болот. Жооп мейкиндиги бөлүнбөй турган издөө алгоритмдери: O(log n).
Log n Square деген эмне?
Log ^2 (
) өлчөмү көйгөйү үчүн журнал журнал пропорционал экенин билдирет
. Log(
)^ 2 бул дегенди билдирет журналдын квадратына пропорционалдуу.