Seperti yang disebutkan dalam jawaban atas pertanyaan terkait, cara yang umum bagi suatu algoritme untuk memiliki kompleksitas waktu O(log n) adalah agar algoritme itu bekerja dengan memotong ukuran input berulang kali oleh beberapa faktor konstan pada setiap iterasi.
Apa yang dimaksud dengan log n?
O(log N) pada dasarnya berarti waktu naik secara linier sedangkan n naik secara eksponensial. Jadi jika dibutuhkan 1 detik untuk menghitung 10 elemen, maka akan membutuhkan 2 detik untuk menghitung 100 elemen, 3 detik untuk menghitung 1000 elemen, dan seterusnya. Ini adalah O(log n) ketika kita melakukan pembagian dan penaklukan jenis algoritma misalnya pencarian biner.
Apa itu O dan log n?
Untuk input berukuran n, sebuah algoritma dari O(n) akan melakukan langkah-langkah yang sebanding dengan n, sedangkan algoritma lain dari O(log(n)) akan melakukan langkah-langkah kira-kira log(n). Jelas log(n) lebih kecil dari n maka algoritma kompleksitas O(log(n)) lebih baik.
Bagaimana cara menghitung log n?
Idenya adalah bahwa suatu algoritma adalah O(log n) jika alih-alih menggulir melalui struktur 1 per 1, Anda membagi struktur menjadi dua berulang-ulang dan melakukan sejumlah operasi yang konstan untuk setiap pemisahan. Algoritma pencarian di mana ruang jawaban terus terbelah adalah O(log n).
Apa itu log n Square?
Log ^2 (
) berarti sebanding dengan log dari log untuk masalah ukuran
. Log(
)^ 2 artinya adalahsebanding dengan persegi dari log.