Shell -Sortierung C ++

Shell -Sortierung C ++
Die C ++ - Sprache entwickelte viele Sortierungstechniken, die im Programm zum Sortieren einer Reihe von Objekten verwendet werden können. Eine dieser Sortierungstechniken ist die Shell -Sort. Innerhalb der Insertions -Sortierung neigen wir dazu, einen einzelnen Wert auf seine nächste Indexposition zu verschieben. Die Bewegung eines Wertes in den nächsten Index von aufeinanderfolgender Index liefert möglicherweise nicht das erforderliche Ergebnis, wenn wir es am Ende platzieren möchten und beim Sortieren mehr Zeit in Anspruch nehmen können. Gleichzeitig kann die Shell -Sortierung einen Wert weit entfernt von ihrem ursprünglichen Ort verschieben und weniger Zeit benötigen. Wir haben uns daher entschlossen, die Arbeit der Shell -Sortier -Technik in der C ++ - Programmierung zu demonstrieren. Beginnen wir mit der C ++ - Dateierstellung und der Öffnung durch die nachstehend auf der Terminalkonsole des Ubuntu 20 nachgewiesenen Anweisungen.04 System.

Beispiel 01:

Ausgehend vom ersten Beispiel in einer neuen Datei müssen wir zuerst die erforderlichen Bibliotheken verwenden. Ohne den Header „iOstream“ kann ein Benutzer keine Eingabe- und Ausgabestream im Code verwenden. Ein C ++ - Programmierer verwendet immer "Namespace" und Bibliotheken wie "iOstream", "stdlib" und "stdio".H ”usw. Hier kommt die SWAP () -Methode, die von der Funktion „Sortier“ aufgerufen wird. Die Sortierfunktion übergibt zwei Werte an verschiedenen Stellen an die Methode „SWAP ()“ und verwendet die Variable „Temp“, um sie miteinander auszutauschen.

Die Funktion show () nimmt ein Array und seine Größe an, um in ihren Parametern aus der Main () -Methode angezeigt zu werden. Es wird die "für" -Schloop verwenden, um das gesamte Array bis zu seiner Größe zu iterieren ".Verwenden Sie das Objekt "Cout", um jeden Wert mit dem index "i" von anderen Werten durch einen Speicherplatz anzuzeigen. Nachdem alle Werte angezeigt werden.

Nachdem das unsortierte Array angezeigt wurde, dreht es sich um die Funktion „Sortier“, um daran zu arbeiten. Die Sortierfunktion nimmt ein Array und seine Größe zur Verwendung ein. Initialisierte drei Ganzzahlvariablen G, J, K. Die Variable „G“ wird in der ersten äußeren „für“ -Schloop verwendet, um die Lücke zwischen Werten zu verringern. Es wird von der Mitte des Arrays gemäß "g = n/2" gestartet. Bei jeder Iteration wird die Lücke erneut durch „G/2“ abgenommen, ich.e., Eine weitere Hälfte wird erstellt. Auf diese Weise wird das Array in verschiedene Teile aufgeteilt, und die Lückengröße wird geringer sein. Die nächste "J" -Schloop startet vom aktuellen Gap -Wert, ich.e., "G", der zu dieser Zeit der Mittelpunkt eines Arrays sein wird. Und es wird bis zum letzten Index eines Arrays fortgesetzt. Bei jeder Iteration wird „J“ inkrementiert. Das „K“ für Schleife startet von „J-G“ und fordert bis „k> = fort."Wenn der Wert bei" k+g "größer oder gleich dem Wert bei" k "eines Arrays ist, wird die Schleife gebrochen. Andernfalls werden die Werte vom Funktionsaufruf „Swap“ ausgetauscht. Höchstwahrscheinlich wird der Wert bei „K+G“ eine Ausgangsposition sein, und „K“ wird an der letzten Position eines Arrays liegen.

Jedes Programm startet seine Ausführung vom Main () -Treiberfunktionscode während der Ausführung. Unsere main () -Funktion wurde mit einem Ganzzahlarray „A“ -Initialisierung gestartet. Dieses Array „A“ wird in einer zufälligen Reihenfolge sein, ich.e., ungeordnet. Das "Cout" -Objekt ist die C ++ - Standardausgabeanweisung. Dieses Mal haben wir es verwendet, um Benutzer wissen zu lassen, dass das Array vor dem Sortieren auf dem Bildschirm angezeigt wird. Die Funktion „show ()“ wird aufgerufen, indem sie das ursprüngliche unsortierte Array „A“ und die Anzahl der Werte, die Sie vor der Sortierung anzeigen möchten, übergeben werden. Obwohl es insgesamt 10 Elemente im Array gibt, haben wir nur 9 sortiert und angezeigt. Die „Sortier“ -Methode wird aufgerufen, indem das Array und die Anzahl der hier sortierenden Elemente bestanden werden. Nachdem die Sortierung mit der Shell -Sortierung durchgeführt wurde.

die Muschel.Die CC-Datei wurde kompiliert und führte nach der Ausführung zur Ausgabe unter der veranlassung. Die ungeortierten 9 Elemente für das Array werden zuerst angezeigt. In der letzten Zeile werden dieselben 9 Elemente eines Arrays in aufsteigender Reihenfolge für Sortier angezeigt.

Beispiel 02:

Hier kommt ein neues Beispiel für die Verwendung von Shell -Sortier in unserem Programm. Wir haben die gleiche Hülle verwendet.CC -Datei und initialisierte unseren Code mit demselben Header und demselben Namespace. Dieses Programm beginnt mit der main () -Funktion. Die main () -Methode hat ein ganzzahliges Array A von 5 Werten, die bereits initialisiert wurden. Die Variable „n“ wird durch die Verwendung der Funktion „sizeof ()“ für C initialisiert++. Dies wird verwendet, um die Gesamtzahlen in einem Array "A" zu berechnen und diesen Wert auf Variable "n" zu speichern.Wir können sehen, dass das Array nur über 5 Elemente verfügt, sodass Sie einfach die Verwendung mehrerer Elemente überspringen und überall im Code „5“ verwenden können.

Es kommt die Nachricht, dass Benutzer wachsam sind, da das unsortierte Array angezeigt wird, ich.e., über „Cout.Die Funktion „display ()“ wird hier aufgerufen, um das vollständige unsortierte Array anzuzeigen, indem es ein Array und die Anzahl der Elemente darin übergeben. Die Funktion display () verwendet die Schleife "für", um das übergebene Array bis zu seinem letzten Index zu iterieren und die Werte anzuzeigen, da es das Objekt "Cout" und Index "i" verwendet.Hier kommt die Methode "sort ()". Der Funktionsaufruf dieser Methode nimmt das Array und seine Gesamtzahl der Elemente als Eingabe auf. Die äußere „für“ Schleife ist hier, um die Lücke zwischen den Werten/Indizes zu verringern, indem die Gesamtzahl der Elemente durch 2 geteilt wird.

Der Wert von „G“ muss größer als 0 sein und er wird nach jeder Iteration wieder um 2 verringert. Dies verringert die Lücke in jeder Iteration. Die innere "i" -Schloop wird den Wert von Gap "G" als Ausgangspunkt nennen und bis „n“ fortgesetzt werden.In dieser Schleife wird der Wert von "i" der temporären Variablen "Temp" zugewiesen. Die innerstärkste „J“ -Sufe ist hier. Es beginnt vom Punkt "i", bis der Wert von g gleich oder größer als "g" wird, und auch der Wert am Index "J-g" des Arrays wird größer als die "Temporable". Das „j“ wird jedes Mal durch „G“ abgeschlossen. Diese Schleife tausch."Der Wert von" temp "wird dem Index" J "des Arrays zugewiesen, ich.e., tauschen Sie bei Bedarf aus. Nachdem die main () -Funktion zurückgekehrt ist, wird die Anzeige () -Methode erneut aufgerufen, um das sortierte Array anzuzeigen.

Bei Zusammenstellung und Laufen der Schale.CC -Datei stellt sich heraus, dass das unsortierte Array jetzt sortiert wurde.

Abschluss:

In unserem Einführungsabsatz haben wir den Hauptzweck für die Verwendung der Shell -Sortierung und nicht in C veranschaulicht++. Um zu demonstrieren, wie es funktioniert. Das erste Beispiel verwendet benutzerdefinierte Methoden, um Elemente auszutauschen und zu sortieren. Das zweite verwendet jedoch eine einzige Funktion, um beide auszuführen. Beide Shell-Sortierszenarien können für jedes technologiebedingte Projekt verwendet werden.