Холбогдох асуултын хариултанд дурдсанчлан, алгоритм нь цаг хугацааны нарийн төвөгтэй 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)) нарийн төвөгтэй байдлын алгоритм нь илүү сайн.
Та log n-ийг хэрхэн тооцоолох вэ?
Бүтцийг 1-ээс 1-ээр гүйлгэхийн оронд бүтцийг дахин дахин хагас болгон хувааж, хуваах бүрт тогтмол тооны үйлдэл хийвэл алгоритм нь O(log n) болно гэсэн санаа юм. Хариултын зай байнга хуваагддаг хайлтын алгоритмууд нь O(log n).
Log n Square гэж юу вэ?
Log ^2 (
) нь хэмжээтэй асуудлын хувьд логийн-ийн логтой пропорциональ байна гэсэн үг.
. Лог(
)^ 2 гэсэн үг логийн квадрат-тай пропорциональ.