Pratikte yı seçerken tamamen teorik analizle hareket edilmiyor. Teorik olarak yı civarına kadar büyütsek de karmaşıklığa hâlâ sadık kalabiliyoruz. Ama işin gerçeğinde tam hangi değerinin "en iyi" olduğunu anlamak için makineye, kod detaylarına ve deneme yanılma testlerine bakmak gerekiyor.
Teori, CPU cache yapısını, bellek bant genişliğini, tahminleme mekanizmalarını filan hesaba katmaz. Insertion sort küçük alt listelerde süper hızlı olabilir çünkü cache dostu ve basit. Nerede daha verimli olduğu, hangi da "patladığı" donanıma göre değişir.
Teorik büyük notasyonunda gizli sabit faktörler pratikte önemli. Örneğin elindeki insertion sort çok iyi optimize edildiyse, biraz daha büyük olsa da sorun olmayabilir. Ya da merge işlemi çok verimliyse belki daha ufak daha iyi olur. Kodun gerçekte nasıl yazıldığı hangi kütüphanelerin kullanıldığı falan fark yaratıyor.
Genelde insanlar önce farklı değerlerini (mesela 8, 16, 32, 64) deneyip runtime'ları ölçerler. Sonra hangisi daha hızlıysa onu seçerler. En garanti yol bu: kendi donanımın ve verin üzerinde test etmek yuani.
Python ve Java'daki Timsort gibi yüksek performanslı sortlar genelde 16-64 elemanlık küçük parçalarda insertion sort kullanıyor. Bu aralıklar da tamamen bir sürü testten, deneyimden ve deneme-yanılmadan çıkan sonuçlar tabii.