String matching WS13-14
Inhaltsverzeichnis |
Allgemeines und Festlegungen
String matching befasst sich allgemein mit dem Finden eines Wortes in einem Text.
Beim Text handelt es sich um eine endliche Folge von Zeichen (bestehend aus dem Alphabet der Groß- und Kleinbuchstaben, Zahlen und Satzzeichen) und wird mit t abgekürzt. Das Wort setzt sich ebenfalls aus den selben Zeichen zusammen und wird abgekürzt als w dargestellt. Obwohl es aus mehreren Wörtern bestehen kann, wird es im Folgenden als "Wort" bezeichnet.
Sowohl der Text, als auch das Wort, weisen eine bestimmte Länge auf. Dies bezieht sich auf die Anzahl der Zeichen des Textes bzw. des Wortes. Beim Text wird die Länge mit n bezeichnet und beim Wort mit m.
Um nun festzustellen, ob sich ein Wort in einem Text befindet, müssen einzelne Zeichen verglichen werden. Deren Positionen werden folgedermaßen beschrieben:
- das i-te Zeichen von t heißt t[i], wobei 1\leq i \leq n gilt
- das j-te Zeichen von w heißt w[j], wobei 1\leq j \leq m gilt.
Somit ist eine präzise Positionsangabe möglich.
Naiver Algorithmus
Der Algorithmus sucht und vergleicht Zeichen für Zeichen im Text.
Weitere Algorithmen
Einige weitere Algorithmen.
Der Boyer-Moore-Horspool Algorithmus
Ein sehr bekannter Algorithmus für das String-Matching-Problem.