Un esempio in cui l'algoritmo Knuth-Morris-Pratt è più veloce di Boyer-Moore?


10

Questa pagina sull'algoritmo Knuth-Moriss-Pratt rispetto a Boyer-Moore descrive un possibile caso in cui l'algoritmo Boyer-Moore soffre di una piccola distanza di salto mentre KMP potrebbe funzionare meglio.
Sto cercando un buon esempio (testo, modello) che possa dimostrare chiaramente questo caso.


Risposte:


3

C'è un articolo che ha fatto un buon esperimento su questi algoritmi di adattamento delle stringhe per diversi modelli: " Confronto di algoritmi di adattamento delle stringhe: un aiuto per la sicurezza del contenuto delle informazioni "

Inoltre, esiste uno studio di questi algoritmi di abbinamento delle stringhe per la lingua giapponese: confronto e miglioramento degli algoritmi di adattamento delle stringhe per i testi giapponesi

Spero che siano utili per avere un'idea dell'efficienza degli algoritmi!


3

Bene, questi schemi renderanno più veloce il funzionamento di KMP:

T = aaaaaaaaaa P = aaaa KMP proverà 10 passi di confronto se Boyer-Moore impiegherà 28

Un altro esempio:

T = aaaaaaaaaa P = abab KMP proverà 8 passaggi di confronto in cui BM proverà 12.


Nel primo esempio, entrambi gli algoritmi troveranno immediatamente una corrispondenza, al primo turno: come farebbero più di 4 confronti?
BartoszKP il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.