Das Anordnen von Dingen nacheinander ist eine Aufgabe, die wir im täglichen Leben ausführen, sei es in aufsteigender Reihenfolge oder absteigender Reihenfolge angeordnet. Der Prozess der Anordnung von Dingen in einer richtigen Reihenfolge wird als Sortierung bezeichnet. Aufsteigern steigt die Reihenfolge und die Abstieg ist abnehmend die Reihenfolge. In der Programmierung führen wir die Sortierung auch mit verschiedenen Algorithmen durch. Ein Algorithmus bietet jedoch die schnellste Sortierung, die "schnelle Sortier" ist. Dieser Sortieralgorithmus sortiert das Array schneller als die anderen Algorithmen. Es funktioniert über die Divide- und Eroberungsregel, legt zunächst einen Drehpunkt fest und unterteilt das Array in zwei Sub-Arrays. Stellen Sie dann einen Drehpunkt für Sub-Arrays fest und der Vorgang wird fortgesetzt, bis wir das Ende erreichen und das erforderliche Array sortiert ist. Dieser Artikel erläutert eine eingehende Arbeit einer schnellen Sortierung in C ++ mit einem praktischen Codierungsbeispiel in aufsteigender Reihenfolge.
So wählen Sie einen Drehpunkt aus
Bevor Sie sich weiter in Details befassen, ist es wichtig zu erfahren, wie wir einen Drehpunkt für den Schnellsortalgorithmus auswählen können.
Es gibt keine Einschränkung für die Auswahl eines Pivots. Meistens setzen wir den letzten Wert des Arrays als Drehpunkt.
Algorithmen:
Die schnelle Sortierung erfolgt mit zwei Algorithmen - einer soll das Array entsprechend dem Pivot -Punkt und der andere zum Sortieren des Arrays dienen.
Zur Partitionierung:
Der zurückgegebene Wert gibt uns die Position des Pivot -Index. Vor dem Drehpunkt gibt es die Elemente, die kleiner als der Drehwert sind. Nach dem Drehpunkt gibt es die Elemente, die größer sind als der Drehwert.
Zum Sortieren:
Gehen Sie nun mit der Sortierung fort. Verwenden Sie die folgenden Anweisungen, um ein Array zu sortieren:
Mit Hilfe dieser beiden Algorithmen können wir die schnelle Sortierung in jedem Array durchführen. Ein Beispiel für die Quick -Sortier -Methode ist im Folgenden aufgeklärt:
Schnelle Sortierung in aufsteigender Reihenfolge
Erklären wir die Methode "Schnellsort", um ein Ganzzahl -Array in zunehmender Reihenfolge zu sortieren.
Code:
#enthalten
Verwenden von Namespace STD;
void swap (int array_0 [], int Position_1, int Position_2)
int temp_0;
temp_0 = array_0 [Position_1];
Array_0 [Position_1] = Array_0 [Position_2];
Array_0 [Position_2] = temp_0;
int partition (int array_0 [], int niedrig, int hoch, int pivot)
int i_0 = niedrig;
int j_0 = niedrig;
während (i_0 <= high) if(array_0[i_0] > pivot) i_0 ++;
sonst swap (array_0, i_0, j_0); i_0 ++; J_0 ++;
Rückgabe j_0-1;
void quicksort_0 (int array_0 [], int niedrig, int hoch)
Ich fließe < high)
int pivot = array_0 [hoch];
int Position = partition (Array_0, niedrig, hoch, drehbar);
Quicksort_0 (Array_0, niedrig, Position-1);
Quicksort_0 (array_0, Position+1, hoch);
int main ()
int n [4] = 12,3,8,6;
TRCKSORT_0 (N, 0, 3);
Cout<<"The sorted array is: ";
für (int i = 0; i < 4 ; i++) cout<< n[i]<<"\t";
Starten Sie den Code, indem Sie die Bibliothek importieren und den Standard -Namespace eingeben. Definieren Sie danach eine Methode mit dem Namen "Swap" des Hohlraum -Rückgabetyps. Übergeben Sie in dieser Funktion drei Parameter mit ganzzahliger Typ. Die beiden Argumente "Position_1" und "Position_2" werden für Positionen verwendet. Der dritte, "temp_0", ist ein Array. Die Methode tauscht die Positionen von Array -Elementen aus. Die Variable mit dem Namen "temp_0" wird deklariert, um den Wert vorübergehend zu speichern. Darüber hinaus initialisieren Sie diese „temp_0“ mit der ersten Position des Arrays. Zuweisen Sie dann die zweite Position des Arrays der ersten Position eines Arrays "Position_1" eines Arrays. Und weisen Sie der zweiten Position des Arrays die Temperatur zu, nämlich "Position_2". Dies funktioniert als a = b; B = C; c = a. Diese Methode führt nur den Swap durch.
Definieren Sie außerdem eine andere Funktion für die Partition. Diese Methode unterteilt das Array in zwei Teile und unterteilt die Sub-Arrays weiter in Unterarrays. Diese Funktion handelt. Diese Partition () -Methode hat vier Argumente vom Typ Ganzzahl Typ. Erstens ist ein Array von „Array_0“, der zweite ist „niedrig“, der den Startindex des Arrays speichert, der dritte ist „hoch“, der den letzten Index des Arrays enthält, und der vierte ist „Pivot“. Initialisieren Sie in dieser Methode zwei Variablen - "i_0" und "j_0" - mit "niedrig". Diese beiden Variablen haben einen "int" -Datentyp. Wie wir wissen, enthält „niedrig“ den ersten Index des Arrays. Verwenden Sie in der nächsten Zeile die "while" -Schloop, um das Array zu iterieren. Stellen Sie zunächst die Bedingung von "'While" als i_0 fest <= high. Iterate until we reach the last index of the array. Inside the “while” loop, employ the “if” decision-making statement to check whether the array elements are greater than the pivot or not. If this condition is fulfilled, the body of “if” executes which increments the iterator. Otherwise, the body of “else” is run. In the body of “else”, we callthe swap() method that swaps the array values until they are in ascending order. Outside the “while”, return the “j_0-1” to the function. Because that is incremented in the “else” part.
Definieren Sie eine andere QuickSort () -Methode des Void -Rückgabe -Typs, um die Schnellsortierung durchzuführen. Drei Argumente - "array_0", "niedrig" und "hoch" - werden dieser Funktion eine Ganzzahltypdaten bereitgestellt. Stellen Sie außerdem den Zustand "If" fest. Wenn „niedrig“ geringer ist als das „Hoch“, initialisieren Sie den „Drehpunkt“ mit dem letzten Index des Arrays „High“. Rufen Sie für die Variable „Position“ die Partition () -Methode auf. Rufen Sie dann rekursiv die Funktion von QuickSort () auf der rechten und linken Unterarrays auf.
Verwenden Sie im letzten Teil des Code die Main () -Methode. Initialisieren Sie als Nächst. Diese Funktion enthält drei Argumente. Es führt eine kurze Sortierung im angegebenen Array durch und sortiert dieses Array. Geben Sie die „Cout ein<<” command to print the “The sorted array is:” line. To display the sorted array, use a “for” loop and iterate until the end of the array is reached.
Ausgang:
Das sortierte Array ist: 3 6 8 12
Abschluss
Die schnelle Sortierung in C ++ wird in diesem Leitfaden besprochen. In der Programmierung ist es notwendig, die Arrays in aufsteigender oder absteigender Reihenfolge anzuordnen. Es gibt mehrere Sortieralgorithmen wie Blasensorten, Zusammenführungssortieren usw. Schnelle Sorte ist eine von ihnen, aber wie der Name sagt, sortiert es das Array schneller als andere. In diesem Artikel wird erklärt, was ein Drehpunkt ist, welches Array -Element der Drehpunkt sein kann, den Algorithmen für die schnelle Sortierung verwendet und wie sie durchführen. Dieser Artikel endet mit dem Code von C ++, in dem wir die schnelle Sortierung implementieren.