[Source](http://www-igm.univ-mlv.fr/~lecroq/string/ "Permalink to ESMAJ") # ESMAJ ![Contents][1]![Contents][2] **** [Contents][3] * * * # EXACT STRING MATCHING ALGORITHMS Animation in Java Christian Charras - Thierry Lecroq Laboratoire d'Informatique de Rouen Université de Rouen Faculté des Sciences et des Techniques 76821 Mont-Saint-Aignan Cedex FRANCE _e-mails: {[Christian.Charras][4], [Thierry.Lecroq][5]}@laposte.net_ * * * * [Introduction][6] * [Brute Force algorithm][7] * [Deterministic Finite Automaton algorithm][8] * [Karp-Rabin algorithm][9] * [Shift Or algorithm][10] * [Morris-Pratt algorithm][11] * [Knuth-Morris-Pratt algorithm][12] * [Simon algorithm][13] * [Colussi algorithm][14] * [Galil-Giancarlo algorithm][15] * [Apostolico-Crochemore algorithm][16] * [Not So Naive algorithm][17] * [Boyer-Moore algorithm][18] * [Turbo BM algorithm][19] * [Apostolico-Giancarlo algorithm][20] * [Reverse Colussi algorithm][21] * [Horspool algorithm][22] * [Quick Search algorithm][23] * [Tuned Boyer-Moore algorithm][24] * [Zhu-Takaoka algorithm][25] * [Berry-Ravindran algorithm][26] * [Smith algorithm][27] * [Raita algorithm][28] * [Reverse Factor algorithm][29] * [Turbo Reverse Factor algorithm][30] * [Forward Dawg Matching algorithm][31] * [Backward Nondeterministic Dawg Matching algorithm][32] * [Backward Oracle Matching algorithm][33] * [Galil-Seiferas algorithm][34] * [Two Way algorithm][35] * [String Matching on Ordered Alphabets algorithm][36] * [Optimal Mismatch algorithm][37] * [Maximal Shift algorithm][38] * [Skip Search algorithm][39] * [KMP Skip Search algorithm][40] * [Alpha Skip Search algorithm][41] * * * * [Postscript][42] * [Portable Document Format][43] * * * _Tue Jan 14 15:03:31 MET 1997_ [1]: http://www-igm.univ-mlv.fr/images/next_motif.gif [2]: http://www-igm.univ-mlv.fr/images/contents_motif.gif [3]: http://www-igm.univ-mlv.fr/node1.html [4]: mailto:Christian.Charras%40laposte.net [5]: mailto:Thierry.Lecroq%40laposte.net [6]: http://www-igm.univ-mlv.fr/node2.html#SECTION0020 [7]: http://www-igm.univ-mlv.fr/node3.html#SECTION0030 [8]: http://www-igm.univ-mlv.fr/node4.html#SECTION0040 [9]: http://www-igm.univ-mlv.fr/node5.html#SECTION0050 [10]: http://www-igm.univ-mlv.fr/node6.html#SECTION0060 [11]: http://www-igm.univ-mlv.fr/node7.html#SECTION0070 [12]: http://www-igm.univ-mlv.fr/node8.html#SECTION0080 [13]: http://www-igm.univ-mlv.fr/node9.html#SECTION0090 [14]: http://www-igm.univ-mlv.fr/node10.html#SECTION00100 [15]: http://www-igm.univ-mlv.fr/node11.html#SECTION00110 [16]: http://www-igm.univ-mlv.fr/node12.html#SECTION00120 [17]: http://www-igm.univ-mlv.fr/node13.html#SECTION00130 [18]: http://www-igm.univ-mlv.fr/node14.html#SECTION00140 [19]: http://www-igm.univ-mlv.fr/node15.html#SECTION00150 [20]: http://www-igm.univ-mlv.fr/node16.html#SECTION00160 [21]: http://www-igm.univ-mlv.fr/node17.html#SECTION00170 [22]: http://www-igm.univ-mlv.fr/node18.html#SECTION00180 [23]: http://www-igm.univ-mlv.fr/node19.html#SECTION00190 [24]: http://www-igm.univ-mlv.fr/tunedbm.html#SECTION00195 [25]: http://www-igm.univ-mlv.fr/node20.html#SECTION00200 [26]: http://www-igm.univ-mlv.fr/berryravindran.html#SECTION00205 [27]: http://www-igm.univ-mlv.fr/node21.html#SECTION00210 [28]: http://www-igm.univ-mlv.fr/node22.html#SECTION00220 [29]: http://www-igm.univ-mlv.fr/node23.html#SECTION00230 [30]: http://www-igm.univ-mlv.fr/node24.html#SECTION00240 [31]: http://www-igm.univ-mlv.fr/fdm.html#SECTION00220 [32]: http://www-igm.univ-mlv.fr/bndm.html#SECTION00300 [33]: http://www-igm.univ-mlv.fr/bom.html#SECTION00245 [34]: http://www-igm.univ-mlv.fr/node25.html#SECTION00250 [35]: http://www-igm.univ-mlv.fr/node26.html#SECTION00260 [36]: http://www-igm.univ-mlv.fr/node27.html#SECTION00270 [37]: http://www-igm.univ-mlv.fr/node28.html#SECTION00280 [38]: http://www-igm.univ-mlv.fr/node29.html#SECTION00290 [39]: http://www-igm.univ-mlv.fr/node31.html#SECTION00310 [40]: http://www-igm.univ-mlv.fr/node32.html#SECTION00320 [41]: http://www-igm.univ-mlv.fr/node33.html#SECTION00330 [42]: string.ps [43]: string.pdf