Naive Textsuche
Naive Suche prüft für jede Textposition, ob das Muster passt. Bei Mismatch verschiebt sie um 1.
Einfach zu verstehen, aber langsam auf langen Texten mit wiederkehrenden Mustern.
Erste Fundstelle: Find the Index of the First Occurrence in a String [1].
$$T[s:s+m]\stackrel{?}{=}P$$
Wo gebraucht
Kleine Pattern, einmalige Suchen, Lehrbasis. In Hot Paths durch indexOf, Automaten oder Indexstrukturen ersetzen.
Vertiefung
Die naive Textsuche richtet das Muster nacheinander an jeder möglichen Startposition des Textes aus. Für eine Ausrichtung werden Zeichen von links nach rechts verglichen, bis ein Unterschied gefunden oder das gesamte Muster bestätigt wird.
Nach einem Unterschied verschiebt das Verfahren das Muster um eine Position und beginnt den Vergleich erneut. Bereits erkannte Übereinstimmungen werden dabei nicht systematisch genutzt. Die Methode ist dennoch wertvoll, weil sie kurz, korrekt und bei kleinen Eingaben oder kurzen Mustern oft ausreichend ist.
Schwierigkeitsstufen
- Alle Ausrichtungen eines Musters in einem kurzen Text prüfen.
- Frühe Abbrüche bei ungleichen ersten Zeichen nachvollziehen.
- Eingaben konstruieren, die viele wiederholte Vergleiche verursachen.
Fallstricke
Die letzte zulässige Startposition wird leicht durch eine falsche Schleifengrenze ausgelassen. Auch leere Muster brauchen eine ausdrücklich gewählte Semantik, damit Implementierung und Tests übereinstimmen.
Sources
Tasks
Card Info
- Topic: Algorithmen und Datenstrukturen
- Difficulty: Beginner
- Completed: 0 users