Ich arbeite an String-Suchalgorithmen, die die Suche nach mehreren Mustern unterstützen. Ich habe zwei Algorithmen gefunden, die hinsichtlich der Laufzeit als die stärksten Kandidaten erscheinen, nämlich Aho-Corasick und Rabin-Karp . Ich konnte jedoch keinen umfassenden Vergleich zwischen den beiden Algorithmen finden. Welcher Algorithmus ist effizienter? Welches eignet sich auch besser für paralleles Rechnen und die Suche nach mehreren Mustern? Welches benötigt weniger Hardwareressourcen?
Für den AC-Algorithmus benötigt die Suchphase Zeit, während sie für RK O ( n m ) ist . Die Laufzeit für RK beträgt jedoch O ( n + m ) , wodurch es AC ähnlich ist. Meine vorläufige Schlussfolgerung ist, dass RK praktisch besser zu sein scheint, da es nicht so viel Speicher benötigt wie AC. Ist das korrekt?