Seperti yang dinyatakan dalam jawapan kepada soalan yang dipautkan, cara biasa untuk algoritma mempunyai kerumitan masa O(log n) ialah algoritma itu berfungsi dengan mengurangkan saiz input ke bawah berulang kali dengan beberapa faktor tetap pada setiap lelaran.
Apakah maksud log n?
O(log N) pada asasnya bermaksud masa meningkat secara linear manakala n meningkat secara eksponen. Jadi jika diperlukan 1 saat untuk mengira 10 elemen, ia akan mengambil masa 2 saat untuk mengira 100 elemen, 3 saat untuk mengira 1000 elemen, dan seterusnya. Ia adalah O(log n) apabila kita membahagi dan menakluk jenis algoritma cth carian binari.
Apakah itu O dan log n?
Untuk input saiz n, algoritma O(n) akan melakukan langkah berkadar dengan n, manakala algoritma lain O(log(n)) akan melaksanakan langkah kira-kira log(n). Jelas sekali log(n) lebih kecil daripada n maka algoritma kerumitan O(log(n)) adalah lebih baik.
Bagaimana anda mengira log n?
Ideanya ialah algoritma ialah O(log n) jika bukannya menatal melalui struktur 1 dengan 1, anda membahagikan struktur itu separuh berulang kali dan melakukan bilangan operasi yang tetap untuk setiap pemisahan. Algoritma carian yang ruang jawapan terus terpecah ialah O(log n).
Apakah log n Square?
Log ^2 (
) bermakna ia berkadar dengan log daripada log untuk masalah saiz
. Log(
)^ 2 bermakna ia adalahberkadar dengan persegi daripada log.