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
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Nachfolgend finden Sie einen C-Sprachalgorithmus zum Konvertieren römischer Ziffern in Dezimalzahlen: Algorithmus Schritt 1 – Start Schritt 2 – Römische Ziffern zur Laufzeit lesen Schritt 3 – Länge: = strlen(roman) Schritt 4 – Für i=0 bis Länge-1 Schritt 4.1-switch(roman[i]) Schritt 4.1.1-case'm': &nbs

Der lexikografische Zeichenfolgenvergleich bedeutet, dass Zeichenfolgen in Wörterbuchreihenfolge verglichen werden. Wenn beispielsweise zwei Zeichenfolgen „apple“ und „appeal“ vorhanden sind, steht die erste Zeichenfolge an letzter Stelle, da die ersten drei Zeichen von „app“ identisch sind. Dann ist das Zeichen für die erste Zeichenfolge „l“ und in der zweiten Zeichenfolge ist das vierte Zeichen „e“. Da „e“ kürzer als „l“ ist, steht es an erster Stelle, wenn wir lexikografisch sortieren. Zeichenfolgen werden vor der Anordnung lexikografisch verglichen. In diesem Artikel werden wir verschiedene Techniken zum lexikografischen Vergleich zweier Zeichenfolgen mit C++ kennenlernen. Verwendung der Funktion „compare()“ in C++-Strings Das C++-String-Objekt verfügt über eine Funktion „compare()“

Hyperbelfunktionen werden mithilfe von Hyperbeln anstelle von Kreisen definiert und entsprechen gewöhnlichen trigonometrischen Funktionen. Es gibt den Verhältnisparameter in der hyperbolischen Sinusfunktion aus dem angegebenen Winkel im Bogenmaß zurück. Aber machen Sie das Gegenteil, oder anders gesagt. Wenn wir einen Winkel aus einem hyperbolischen Sinus berechnen wollen, benötigen wir eine umgekehrte hyperbolische trigonometrische Operation wie die hyperbolische Umkehrsinusoperation. In diesem Kurs wird gezeigt, wie Sie die hyperbolische Umkehrsinusfunktion (asinh) in C++ verwenden, um Winkel mithilfe des hyperbolischen Sinuswerts im Bogenmaß zu berechnen. Die hyperbolische Arkussinusoperation folgt der folgenden Formel -$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})}, Wo\:In\:ist\:natürlicher Logarithmus\:(log_e\:k)

Verknüpfte Listen verwenden eine dynamische Speicherzuweisung, d. h. sie wachsen und schrumpfen entsprechend. Sie werden als Ansammlungen von Knoten definiert. Hier besteht ein Knoten aus zwei Teilen: Daten und Links. Die Darstellung von Daten, Links und verknüpften Listen ist wie folgt: - Arten von verknüpften Listen Es gibt vier Arten von verknüpften Listen: - Einfach verknüpfte Liste / Einfach verknüpfte Liste Doppelt / Doppelt verknüpfte Liste Zirkuläre einfach verknüpfte Liste Zirkuläre doppelt verknüpfte Liste Wir Verwenden Sie die rekursive Methode, um die Länge der verknüpften Liste zu ermitteln. Die Logik lautet -intlength(node *temp){ if(temp==NULL) returnl;

Die Umbenennungsfunktion ändert den alten Namen einer Datei oder eines Verzeichnisses in den neuen Namen. Dieser Vorgang ähnelt dem Verschiebevorgang. Wir können diese Umbenennungsfunktion also auch zum Verschieben von Dateien verwenden. Diese Funktion ist in der Headerdatei der stdio.h-Bibliothek vorhanden. Die Syntax der Umbenennungsfunktion lautet wie folgt: intrename(constchar*oldname,constchar*newname); Die Funktion der rename()-Funktion akzeptiert zwei Parameter. Einer ist alter Name und der andere ist neuer Name. Beide Parameter sind Zeiger auf konstante Zeichen, die den alten und neuen Namen der Datei definieren. Gibt Null zurück, wenn die Datei erfolgreich umbenannt wurde; andernfalls wird eine Ganzzahl ungleich Null zurückgegeben. Während eines Umbenennungsvorgangs

Eine Karte ist ein spezieller Containertyp in C++, bei dem jedes Element ein Paar aus zwei Werten ist, nämlich einem Schlüsselwert und einem zugeordneten Wert. Der Schlüsselwert wird zum Indizieren jedes Elements verwendet, und der zugeordnete Wert ist der mit dem Schlüssel verknüpfte Wert. Unabhängig davon, ob der zugeordnete Wert eindeutig ist, ist der Schlüssel immer eindeutig. Um Kartenelemente in C++ zu drucken, müssen wir einen Iterator verwenden. Ein Element in einer Menge von Elementen wird durch ein Iteratorobjekt angegeben. Iteratoren werden hauptsächlich mit Arrays und anderen Arten von Containern (z. B. Vektoren) verwendet und verfügen über einen bestimmten Satz von Operationen, mit denen bestimmte Elemente innerhalb eines bestimmten Bereichs identifiziert werden können. Iteratoren können inkrementiert oder dekrementiert werden, um auf verschiedene Elemente in einem Bereich oder Container zu verweisen. Der Iterator zeigt auf den Speicherort eines bestimmten Elements im Bereich. Drucken einer Karte in C++ mit Iteratoren Schauen wir uns zunächst an, wie man definiert

Strncmp ist eine vordefinierte Bibliotheksfunktion, die in der Datei string.h vorhanden ist und zum Vergleichen zweier Zeichenfolgen und zum Anzeigen der größeren Zeichenfolge verwendet wird. strcmp-Funktion (String-Vergleich) Diese Funktion vergleicht zwei Strings. Es gibt die ASCII-Differenz des ersten nicht übereinstimmenden Zeichens in den beiden Zeichenfolgen zurück. Syntax intstrcmp(string1,string2); Wenn die Differenz gleich Null ist, dann ist string1=string2. Wenn die Differenz positiv ist, ist string1>string2. Wenn die Differenz negativ ist, ist string1<string2. Beispiel für eine strncmp-Funktion Diese Funktion wird verwendet, um die ersten n Zeichen zweier Zeichenfolgen zu vergleichen. Syntaxstrn

Die moderne Wissenschaft stützt sich stark auf das Konzept der Pluralzahlen, das erstmals im frühen 17. Jahrhundert von Girolamo Cardano etabliert und im 16. Jahrhundert eingeführt wurde. Die Formel für komplexe Zahlen lautet a+ib, wobei a den HTML-Code enthält und b eine reelle Zahl ist. Eine komplexe Zahl soll aus zwei Teilen bestehen: dem Realteil <a> und dem Imaginärteil (<ib>). Der Wert von i oder iota ist √-1. Die Pluralklasse in C++ ist eine Klasse zur Darstellung komplexer Zahlen. Die komplexe Klasse in C++ kann mehrere komplexe Zahlenoperationen darstellen und steuern. Werfen wir einen Blick darauf, wie man die Anzeige mehrerer Zahlen darstellt und steuert. Mitgliedsfunktion imag() Wie oben erwähnt, bestehen komplexe Zahlen aus einem Realteil und einem Imaginärteil. Um den Realteil anzuzeigen, verwenden wir real()
