Alıntı oldukça belirsiz ve kesin değildir. Yorumlanabileceği en az üç ilgili yol vardır.
Bunun arkasındaki gerçek matematiksel nokta şudur, eğer sadece bir limite kadar olan boyut örnekleri ile ilgileniyorsanız, o zaman sadece çok sayıda muhtemel durum vardır. Örneğin, yüz köşesine kadar sadece çok sayıda grafik vardır. Yalnızca sınırlı sayıda örnek varsa, ilke olarak, sorunu tüm olası örneklere verilen tüm cevapların bir arama tablosunu oluşturarak çözebilirsiniz. Şimdi, cevabı ilk önce girişin çok büyük olmadığını kontrol ederek bulabilirsiniz (bu, sabit zaman alır: giriş k'dan uzunsa). k, geçersizdir) ve sonra cevap tablosundaki ifadeye bakın (sabit zaman alır: tabloda sabit sayıda giriş vardır). Ancak, tablonun gerçek boyutunun muhtemelen inanılmaz derecede büyük olduğuna dikkat edin. Yüz köşesinde sadece sınırlı sayıda grafik olduğunu söyledim ve bu doğru. Sadece sonlu sayılar gözlemlenebilir evrendeki atom sayısından daha büyük.
Biz bir algoritma çalışma süresi olduğunu söylediğimizde, daha pratik açıdan, yani bu kadar sadece araçlarının, asimptotik c , n 2 bir sabit için, adım C . Olduğunu, bazı sabit var n 0 herkes için, böyle n ≥ n 0 , algoritma kabaca alır c n 2 adımlar. Ama belki n 0 = 100 , 000 , 000Θ(n2) cn2Cn0n≥n0cn2n0=100,000,000ve sadece bundan daha küçük boyuttaki örneklerle ilgileniyorsunuz. Asimptotik ikinci dereceden sınır, küçük örnekleriniz için bile geçerli olmayabilir. Şanslı olabilirsiniz ve küçük girişlerde daha hızlı olabilir (veya şanssız olabilir ve daha yavaş olabilirsiniz). Örneğin, küçük , n 2 < 1000 n olduğundan, sabit sabitleri olan doğrusal bir algoritmadan ziyade iyi sabitleri olan ikinci dereceden bir algoritmayı çalıştırmayı tercih edersiniz. Bunun gerçek bir örneği, asimptotik olarak en verimli matris çarpım algoritmalarının ( O zamanında çalışan ( Coppersmith -Winograd varyantları ) ( n 2.3729 ) ) pratikte nadiren kullanılmasıdır çünkü Strassen (nn2<1000nO(n2.3729) algoritma, matrisleriniz gerçekten büyük olmadığı sürece daha hızlıdır.O(n2.8074)
Eğer bir üçüncü nokta, yani küçük, n, 2 ve hatta n, 3 küçüktür. Örneğin, birkaç bin veri öğesini sıralamanız gerekiyorsa ve bunları yalnızca bir kez sıralamanız gerekiyorsa, sıralama algoritmaları yeterlidir: a Θ ( n 2 )nn2n3Θ(n2)Algoritma hala, verilerinizi sıralamak için belki de sadece birkaç milyon talimata ihtiyaç duyacaktır; bu işlem, saniyede milyarlarca talimat gerçekleştirebilecek bir CPU'da fazla zaman değildir. Tamam, bellek erişimi de var, ancak yavaş bir algoritma bile bir saniyeden daha az sürecek, bu nedenle basit, yavaş bir algoritma kullanmak ve karmaşık, hızlı bir algoritma kullanmaktan ve yıldırım hızını bulmaktan daha doğru bir yöntem kullanmak daha iyi ama adamcağız ve aslında verileri doğru şekilde sıralamıyor.