Un exemple où l'algorithme Knuth-Morris-Pratt est plus rapide que Boyer-Moore?


10

Cette page sur l'algorithme de Knuth-Moriss-Pratt par rapport à Boyer-Moore décrit un cas possible où l'algorithme de Boyer-Moore souffre d'une petite distance de saut alors que KMP pourrait mieux fonctionner.
Je cherche un bon exemple (texte, motif) qui peut clairement démontrer ce cas.


Réponses:


3

Il existe un article qui a fait une bonne expérience sur ces algorithmes de correspondance de chaînes pour différents modèles: " Comparaison des algorithmes de correspondance de chaînes: une aide à la sécurité du contenu de l'information "

Il existe également une étude de ces algorithmes de correspondance de chaînes pour la langue japonaise: comparaison et amélioration des algorithmes de correspondance de chaînes pour les textes japonais

J'espère que ceux-ci sont utiles pour avoir une idée de l'efficacité des algorithmes!


3

Eh bien, ces modèles rendront KMP plus rapide:

T = aaaaaaaaaa P = aaaa KMP tentera 10 étapes de comparaison où Boyer-Moore prendra 28

Un autre exemple:

T = aaaaaaaaaa P = abab KMP essaiera 8 étapes de comparaison où BM essaiera 12.


Dans le premier exemple, les deux algorithmes trouveront une correspondance immédiatement, au premier quart de travail - comment feraient-ils plus de 4 comparaisons?
BartoszKP
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.