Heim > Backend-Entwicklung > C++ > Hauptteil

C-Programm des Rabin-Karp-Algorithmus zur Mustersuche

WBOY
Freigeben: 2023-09-17 09:01:02
nach vorne
524 Leute haben es durchsucht

C-Programm des Rabin-Karp-Algorithmus zur Mustersuche

Mustervergleich in C - Wir müssen herausfinden, ob ein String in einem anderen String existiert, zum Beispiel existiert der String „Algorithmus“ im String „naiver Algorithmus“. Wenn es gefunden wird, wird sein Standort (d. h. wo es sich befindet) angezeigt. Wir neigen dazu, eine Funktion zu erstellen, die ein Array aus zwei Zeichen annimmt und bei einer Übereinstimmung die Position zurückgibt Andernfalls wird -1 zurückgegeben.

Input: txt = "HERE IS A NICE CAP"
   pattern = "NICE"
Output: Pattern found at index 10
Input: txt = "XYZXACAADXYZXYZX"
   pattern = "XYZX"
Output: Pattern found at index 0
   Pattern found at index 9
   Pattern found at index 12
Nach dem Login kopieren

Rabin-Karp ist ein weiterer Mustersuchalgorithmus. Nur String-Matching Von Rabin und Karp vorgeschlagener Algorithmus zur effizienteren Mustersuche Weg. Wie der naive Algorithmus prüft er auch, ob Muster vorliegen, indem er das Fenster verschiebt Es sucht nacheinander nach Hashes, muss jedoch nicht in allen Fällen alle Zeichen überprüfen. Wenn die Hashes übereinstimmen, wird jedes Zeichen überprüft. Auf diese Weise gibt es nur einen Vergleich pro Textteilsequenz, was den Mustersuchalgorithmus effizienter macht.

Vorverarbeitungszeit – O(m)

Die zeitliche Komplexität des Rabin-Karp-Algorithmus beträgt O(m+n), aber im schlimmsten Fall Es ist O(mn).

Algorithmus

rabinkarp_algo(text,pattern,prime)

Eingabe

rabinkarp_algo(text,muster,prime)

Eingabestrong>− Text und Muster. Finden Sie eine andere Primzahl an der Hash-Position

Das obige ist der detaillierte Inhalt vonC-Programm des Rabin-Karp-Algorithmus zur Mustersuche. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage