Ya, untuk N. kecil yang sesuai Akan selalu ada N, di atasnya Anda akan selalu memiliki urutan O (1) <O (lg N) <O (N) <O (N log N) <O (N ^ c ) <O (c ^ N) (di mana O (1) <O (lg N) berarti bahwa pada O (1) algoritma akan mengambil lebih sedikit operasi ketika N cukup besar dan c adalah konstanta tetap yang lebih besar dari 1 ).
Katakanlah algoritma O (1) tertentu membutuhkan operasi f (N) = 10 ^ 100 (a googol) dan sebuah algoritma O (N) membutuhkan operasi g (N) = 2 N + 5. Algoritma O (N) akan memberikan kinerja yang lebih besar sampai Anda N kira-kira googol (sebenarnya ketika N> (10 ^ 100 - 5) / 2), jadi jika Anda hanya berharap N berada di kisaran 1000 hingga satu miliar Anda akan menderita penalti besar menggunakan algoritma O (1).
Atau untuk perbandingan yang realistis, misalkan Anda mengalikan angka n-digit bersama-sama. The Karatsuba algoritma yang paling banyak 3 n ^ (lg 3) operasi (yang kira-kira O (n ^ 1,585)) sedangkan algoritma Schönhage-Strassen adalah O (N log N log log N) yang merupakan urutan lebih cepat , tetapi untuk kutipan wikipedia:
Dalam praktiknya, algoritma Schönhage-Strassen mulai mengungguli metode yang lebih tua seperti Karatsuba dan perkalian Toom-Cook untuk angka di luar 2 ^ 2 ^ 15 hingga 2 ^ 2 ^ 17 (10.000 hingga 40.000 angka desimal). [4] [5] [6 ]
Jadi, jika Anda mengalikan 500 angka angka bersama, tidak masuk akal untuk menggunakan algoritma yang "lebih cepat" oleh argumen O besar.
EDIT: Anda dapat menemukan menentukan f (N) dibandingkan g (N), dengan mengambil batas N-> tak terhingga dari f (N) / g (N). Jika batasnya adalah 0 maka f (N) <g (N), jika batasnya tidak terbatas maka f (N)> g (N), dan jika batasnya adalah konstanta lain maka f (N) ~ g (N) dalam hal notasi O besar.