Mustersuche in Zeichenfolgen Autor: Stefan Mohr
Wozu Mustersuche? Texteditoren Textverarbeitungssysteme Internetbrowser
Algorithmen zur Mustersuche Naive Mustersuche Knuth-Morris-Pratt Boyer-Moore Quick Search Optimal Mismatch
Beispiel: naive Mustersuche
Knuth-Morris-Pratt Verschiebung um mehrere Positionen? Zeichen bei Fehlstart bekannt => Verschiebetabelle
Wiederaufsetzpositionen bei Knuth-Morris-Pratt
Beispiel zu Knuth-Morris-Pratt
Boyer-Moore Schnell und einfach Verschiebung von links nach rechts Vergleich beginnt rechts! Verschiebetabelle
Beispiel zu Boyer-Moore „Otto Mohl fühlt sich wohl ohne Atomstrom“
Quick Search Verschiebetabelle Zeichen hinter dem Muster untersuchen Zeichenvergleiche beliebig Ansatz für weitere Verbesserung
Optimal Mismatch Möglichst wenig Vergleiche möglichst schnell mismatch Zeichenhäufigkeit unterschiedlich nach Häufigkeit sortiert abarbeiten
Komplexität der Algorithmen Naiv: max N*M KMP: max N+M BM: ø N/M QS / OM: weniger als N/M Vergleiche