Die naive Suche ist ein Textsuchalgorithmus.
Idee
- Text von rechts nach links durchlaufen
- An jeder Position wird das Muster von links nach rechts zeichenweise mit dem Text verglichen
- Bei Ungleichheit wird zum nächsten Zeichen übergegangen
Komplexität
Im worst case muss jede Position maximal oft ohne Ergebnis durchlaufen werden:
Im average case stimmt häufig bereits das erste Zeichen des Musters nicht überein:
Implementierung
int NaiveSearch(char Text[], int n, char Muster[], int m) {
int count = 0;
for (int i = 0; i <= n - m; i++) {
bool match = true;
for (int j = 0; j < m; j++) {
if (Text[i+j] != Muster[j])
match = false; break;
}
if (match) count++;
}
return count;
}