การวิเคราะห์เวลาทำงานแบบอะซิมโทติกไม่น่าจะเป็นเครื่องมือที่ดีที่สุดในการเลือกระหว่างอัลกอริธึมทั้งสอง: การวิเคราะห์แบบอะซิมโทติคจะไม่สนใจปัจจัยคงที่และปัจจัยคงที่จะมีความสำคัญที่นี่ อัลกอริธึมทั้งสองนั้นมีเวลาทำงานแบบ asymptotic เหมือนกันดังนั้นการวิเคราะห์แบบ asymptotic อาจไม่เป็นประโยชน์ในการเลือกระหว่างมัน
วิธีที่ถูกต้องระหว่างอัลกอริธึมทั้งสองคือการวิเคราะห์เชิงทดลอง ระบุเวิร์กโหลดของตัวแทนและเปรียบเทียบประสิทธิภาพของอัลกอริธึมทั้งสองกับเวิร์กโหลดของคุณกับชนิดของเครื่องที่คุณตั้งใจจะใช้ในทางปฏิบัติ
ดูเหมือนว่าคุณอาจมีความสับสนเล็กน้อยเกี่ยวกับเวลาที่ใช้ในการทำงานของ Rabin-Karp ในอีกด้านหนึ่งคุณบอกว่า Rabin-Karp มีเวลาทำงานแต่ในประโยคถัดไปคุณจะพูดว่า Rabin-Karp มีเวลาทำงานบางทีคุณอาจสับสนกับความแตกต่างระหว่างเวลาเฉลี่ยกับกรณีที่แย่ที่สุดO(nm)O(n+m)
เนื่องจาก Rabin-Karp ได้รับการสุ่มเวลาในการทำงานที่คาดหวัง (โดยเฉลี่ย) เป็นตัวชี้วัดที่เหมาะสมที่จะใช้ในการทำนายประสิทธิภาพการทำงานจริงของโลกในทางปฏิบัติ โดยเฉพาะอย่างยิ่งที่นี่ค่าเฉลี่ยจะถูกนำไปเลือกสุ่มของฟังก์ชั่นแฮ ไม่ใช่เฉพาะค่าเฉลี่ยที่เลือกมาจากสตริง แม้สำหรับสตริงที่เลวร้ายที่สุดและรูปแบบเวลาทำงานเฉลี่ยจะยังคงเป็นm) ด้วยฟังก์ชั่นแฮชที่เหมาะสมน่าจะเป็นที่เวลาทำงานเป็นเวลานานกว่าชี้แจงเล็ก ๆ ในคหากต้องการใช้วิธีอื่น (และไม่เป็นทางการเล็กน้อย) มีโอกาสน้อยมากที่ Rabin-Karp ใช้เวลานานกว่าO(n+m)c⋅(n+m)cO(n+m)เวลา. เราต้องยอมรับโอกาสเล็ก ๆ น้อย ๆ อย่างทวีคูณของสิ่งเลวร้ายที่เกิดขึ้น - เช่นมีโอกาสเล็ก ๆ แต่ไม่เป็นศูนย์ของรังสีคอสมิกทำให้เกิดการพลิกบิตในหน่วยความจำของคุณที่ทำให้โปรแกรมวนซ้ำตลอดไป ดังนั้นการกังวลเกี่ยวกับโอกาสเล็ก ๆ น้อย ๆ นี้จึงไม่สมเหตุสมผล
จากมุมมองทางวิศวกรรมเวลาทำงานของ Rabin-Karp คือ [หรืออาจจะ] ไม่สนใจสิ่งที่ ; มันไม่เกี่ยวข้องกับการฝึกฝนจริงๆO(n+m)O(nm)