점근 적 실행 시간 분석은이 두 알고리즘 중에서 선택하기에 가장 좋은 도구는 아닙니다. 점근 분석은 상수 요인을 무시하므로 상수 요인이 중요합니다. 두 알고리즘은 기본적으로 동일한 점근 적 실행 시간을 가지므로 점근 적 분석은 그 중에서 선택하는 데별로 도움이되지 않습니다.
대신 두 알고리즘 중에서 올바른 방법을 선택하는 것은 실험 분석을 통하는 것입니다. 대표적인 워크로드를 식별 한 후 실제로 사용하려는 머신 종류에서 워크로드에 대한 두 알고리즘의 성능을 벤치마킹하십시오.
또한 Rabin-Karp의 점근 적 실행 시간에 대해 약간 혼란 스러울 수 있습니다. 한편으로 Rabin-Karp의 작동 시간 은 이고 다음 문장에서 Rabin-Karp의 작동 시간 은 입니다. 아마도 예상 (평균 경우)와 최악의 경우 실행 시간의 차이로 인해 혼란 스러울 수 있습니다.O ( N + m )O(nm)O(n+m)
Rabin-Karp는 무작위로 분류되므로 예상 (평균 사례) 실행 시간은 실제로 실제 성능을 예측하는 데 사용할 수있는 적절한 지표입니다. 특히, 여기서 평균은 임의의 해시 함수 선택에 대한 것입니다. 특히 문자열 선택에 대한 평균이 아닙니다 . 최악의 문자열과 패턴이라도 평균 실행 시간은 여전히 입니다. 적절한 해시 함수의 실행 시간보다 긴 것이 확률 에서 지수 작은 . 다른 방식으로 (그리고 약간 비공식적으로) 말하면, Rabin-Karp가 보다 오래 걸릴 확률은 기하 급수적으로 적습니다.C ⋅ ( N + M ) (C) O ( N + m )O(n+m)c⋅(n+m)cO(n+m)시각. 우리는 이미 기하 급수적으로 나쁜 일이 일어날 확률을 받아 들여야합니다. 따라서이 기하 급수적으로 작은 기회에 대해 걱정하는 것은 의미가 없습니다.
엔지니어링 관점에서 Rabin-Karp의 실행 시간 은 (또는 가능할 수도 있음). 재료 는 무시하십시오 . 그것은 실제로 연습과 관련이 없습니다.O ( n 개의 m )O(n+m)O(nm)