Asimptotik çalışma süresi analizinin bu iki algoritma arasında seçim yapmak için en iyi araç olması muhtemel değildir: asimptotik analiz sabit faktörleri yok sayar ve sabit faktörler burada kritik olacaktır. İki algoritma temel olarak aynı asimptotik çalışma süresine sahiptir, bu nedenle asimptotik analiz muhtemelen aralarında seçim yapmak için çok yararlı değildir.
Bunun yerine, iki algoritma arasındaki doğru seçim deneysel analizdir. Temsili bir iş yükü belirleyin ve ardından her iki algoritmanın da iş yükünüzdeki, uygulamada kullanmayı düşündüğünüz makine türlerindeki performansını karşılaştırın.
Bu arada, Rabin-Karp'ın asimtotik çalışma süresi hakkında hafif bir karışıklığa sahip olabileceğiniz anlaşılıyor. Bir yandan Rabin-Karp'ın çalışma süresine sahip olduğunu söylersiniz , ancak bir sonraki cümlede Rabin-Karp'ın çalışma süresine sahip olduğunu söylersiniz . Belki de beklenen (ortalama-vaka) ve en kötü-vaka çalışma süresi arasındaki farktan şaşkınsınız.O ( n + m )O(nm)O(n+m)
Rabin-Karp randomize olduğundan, beklenen (ortalama-vaka) çalışma süresi, uygulamada gerçek dünya performansını tahmin etmek için kullanılacak uygun metriktir. Özellikle, burada ortalama karma fonksiyon seçimi üzerinden alınır. Özellikle dize seçimini ele geçiren bir ortalama değil . Olası en kötü dize ve desen için bile ortalama çalışma süresi hala . Uygun bir karma işlev ile, işletim süresi daha uzun olduğu ihtimali olduğu katlanarak küçüktür . Başka bir deyişle (ve biraz resmi olmayan olmak), Rabin-Karp'ın den daha uzun sürmesi katlanarak küçük bir şanstır.c ⋅ ( n + m ) c O ( n + m )O(n+m)c⋅(n+m)cO(n+m)saati. Zaten üstel olarak küçük kötü şeylerin gerçekleşme olasılığını kabul etmeliyiz - örneğin, kozmik ışının, programınızda sonsuza kadar döngü yapmasına neden olan küçük bir flip-flip'e neden olan küçük ama sıfır olmayan bir şans var. Yani, bu katlanarak küçük şanstan endişe etmek mantıklı değil.
Bir mühendislik açısından Rabin-Karp işletim süresi olan [ya da da olabilir]. Göz ardı malzeme; bu uygulama ile gerçekten ilgili değil.O ( n m )O(n+m)O(nm)