Führt der KMP (Knuth-Morris-Pratt) Algorithmus weniger Vergleiche durch als der vereinfachte Boyer-Moore Algorithmus?Führt der KMP-Algorithmus weniger Vergleiche durch als der vereinfachte Boyer-Moore-Algorithmus?
Antwort
Der Boyers Moore-Algorithmus sollte in der Regel mit weniger Vergleiche durchführen von here
Es sollte einigermaßen klar sein, zu zitieren, wenn es normalerweise der Fall ist, dass ein bestimmter Brief tut überhaupt in der Suchzeichenfolge erscheinen, dann benötigt dieser Algorithmus nur ungefähr N/M Zeichenvergleiche (N = Länge (s1), M = Länge (s2)) - eine große Verbesserung gegenüber dem KMP-Algorithmus, der N noch benötigt. Wenn dies jedoch nicht der Fall ist kann wieder bis zu N + M Vergleiche benötigen (mit der Vollversion des Algorithmus). Glücklicherweise kommen wir bei vielen Anwendungen der N/M-Leistung nahe. Wenn der Suchstring sehr groß ist, dann ist es wahrscheinlich, dass ein bestimmtes Zeichen darin erscheint, aber wir erhalten immer noch eine gute Verbesserung im Vergleich zu den anderen Algorithmen (ca. N * 2/alphabet_größe, wenn Zeichen zufällig in einem String verteilt sind).
- 1. Container Höhe ist weniger als der Inhalt
- 2. ist der Operator + weniger performant als StringBuffer.append()
- 3. CSS unterstreichen weniger als Breite der Überschrift?
- 4. GCC ändert weniger als zu weniger als oder gleich
- 5. Größer als weniger, Python
- 6. SiftDown Algorithmus Anzahl der Vergleiche
- 7. QuickSort Algorithm Anzahl der Vergleiche
- 8. Vereinfachte Konfig-Datei-gesteuerte Fabrik
- 9. Quickselect Algorithmus - Vereinfachte Erklärung
- 10. weniger als oder gleich
- 11. Wie führt man einen Zeitstempelvergleich mit der JPA-Abfrage durch?
- 12. Lxml schneidet Text ab, der 'weniger als' Zeichen enthält
- 13. Oracle - Zahl Datensätze, wenn Anzahl der Token weniger als 2
- 14. Größer, weniger als oder gleich in der Assemblersprache?
- 15. Drop-Faktor von der Formel, wenn weniger als zwei Ebenen
- 16. Größe der Ordereddict oder dict weniger als die konstituierenden Elemente?
- 17. Lucene.Net größer als/weniger als TermRangeQuery?
- 18. SQL-Zeichenfolge Vergleich, größer als und weniger als Operatoren
- 19. Vereinfachte Methode zum Abrufen der Assembly-Beschreibung in C#?
- 20. Swig: Der beste Weg, um eine vereinfachte Schnittstelle zu handhaben
- 21. Junit: weniger als Behauptung?
- 22. jQuery validate weniger als
- 23. Der effizienteste Weg, Wegpunkte zu speichern und Vergleiche durchzuführen?
- 24. Verwenden weniger als gdb Pager
- 25. Wrap-Link-Text innerhalb der Schaltfläche, um weniger als 100% der Breite der Schaltfläche aufzunehmen
- 26. Warum wird "string" als vereinfachte Version von "String" betrachtet?
- 27. Verringern der Anzahl der Vergleiche in einer gespeicherten SQL-Prozedur
- 28. wenn listA == [] vereinfachte Version
- 29. C++ Vergleiche Variablen als ein Objekt
- 30. Wie führt Hadoop Eingangsaufteilungen durch?
Ich habe einige Tests vor vielen Jahren gemacht. B-M gewann jedes Mal über KMP. – EJP