10
$\begingroup$

This page about Knuth-Moriss-Pratt Algorithm compared to Boyer-Moore describes a possible case where the Boyer-Moore algorithm suffers from small skip distance while KMP could perform better.
I'm looking for a good example (text,pattern) that can clearly demonstrate this case.

$\endgroup$
1

2 Answers 2

4
$\begingroup$

Well these patterns will make KMP work faster:

T=aaaaaaaaaa P=aaaa KMP will try 10 compare steps were Boyer-Moore will take 28

Another example:

T=aaaaaaaaaa P=abab KMP will try 8 compare steps where BM will try 12.

$\endgroup$
2
  • $\begingroup$ In the first example, both algorithms will find a match immediately, at the first shift - how would they make more than 4 comparisons? $\endgroup$
    – BartoszKP
    Commented Jan 30, 2017 at 10:55
  • $\begingroup$ That first example does not take 10 comparisons for KMP, it takes 28 for both algorithms. $\endgroup$
    – Ryan
    Commented Apr 24, 2021 at 21:58
3
$\begingroup$

There is a paper that did a good experiment over these string matching algorithms for different patterns: "Comparison of string matching algorithms: an aid to information content security"

Also there is a study of these string matching algorithms for Japanese language: Comparison and Improvement of String Matching Algorithms For Japanese Texts

I hope these are useful to get a sense about algorithms efficiency!

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.