Algorithme de Raita

L'algorithme de Raita est un algorithme de recherche de sous-chaîne publié par Tim Raita en 1992[1]. Il est une variation de l'algorithme de Boyer-Moore-Horspool pour en améliorer la performance. En pratique, Raita est plus rapide que Boyer-Moore-Horspool sur de très grands textes, ou sur des alphabets réduits tel l'ADN.

Dans la suite, on notera T le texte de recherche, P la sous-chaîne recherchée et ∑ l'alphabet.

Description

Le pré-traitement de la sous-chaîne P est identique à Boyer-Moore. Comme Boyer-Moore-Horspool la comparaison commence au dernier caractère, mais deux autres comparaisons sont ensuite effectuées, au premier caractère puis au caractère milieu, avant de comparer le reste des caractères[2],[3]

Complexité

La complexité en espace de l'algorithme est , le pré-traitement a une complexité en temps en et la recherche a une complexité en temps en .

Animation

Notes et références

  1. Timo Raita, « Tuning the boyer‐moore‐horspool string searching algorithm », Software: Practice and Experience, vol. 22, no 10,‎ , p. 879–884 (DOI 10.1002/spe.4380221006, lire en ligne, consulté le ).
  2. Christian Charras, Thierry Lecroq, « Algorithme de Raita », Exact string matching algorithms, Laboratoire d'Informatique de Rouen (consulté le ).
  3. P. D. Smith, « On tuning the boyer-moore-horspool string searching algorithm », Software: Practice and Experience, vol. 24, no 4,‎ , p. 435–436 (DOI 10.1002/spe.4380240408, lire en ligne, consulté le )

Liens externes

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya