Bucket Sort C ++

Bucket Sort C ++

Sortierung ist eine Methode, mit der wir die Elemente in einer Sequenz bestellen. Die Bucket -Sortierung ist einer der Sortieralgorithmen, aber dieser Algorithmus unterscheidet. Ein Eimer enthält, wie der Name schon sagt, etwas in einem separaten Raum wie einem Container. Dieser Algorithmus legt die Elemente im Eimer nach dem Zustand. Die Elemente sind in verschiedene Eimer unterteilt, und die Sortierung erfolgt an jedem Eimer. Wir können entscheiden, welcher Algorithmus verwendet wird, um die Eimer zu sortieren. Die anderen Namen für die Bucket Sort. Die Gruppierung von Elementen, die in Eimern gespeichert werden sollen. Bucket -Sort ist der Algorithmus, der gut mit kleinen Arrays ist. Aber wenn es darum geht, die größeren Arrays zu sortieren, wird dieser Algorithmus nicht bevorzugt, da die Komplexität zunimmt und die Leistung abnimmt. Dieser Algorithmus wird hauptsächlich auf die schwimmenden Punktwerte angewendet, bei denen wir die Elemente des Arrays einheitlich gruppieren müssen.

Vorteile:

Die Verwendung der Eimer -Sortierung in der Programmierung hat einige Vorteile:

  • Es ist schnell wegen der einheitlichen Verteilung.
  • Die Anzahl der Vergleiche ist geringer als bei anderen Sortiertechniken.

Die Eimer-Sortierung wird bevorzugt, wenn wir die Daten verteilen müssen und wenn Sie mit Gleitkommawerten zu tun haben.

Streu- und Sammelansatz

Der Eimer-Sort funktioniert auf dem Streu- und Sammelansatz. Es streuert zuerst die Elemente im Eimer gleichmäßig. Sobald sie im Eimer sortiert sind, werden sie an einem Ort zusammengebracht und das Array sortiert. Diese Technik rettet uns vor dem Vergleich jedes Array -Elements miteinander, das die Komplexität erhöht und den Kompilierungsprozess verlangsamt.

Der Eimer sortiert die Arrays, indem die Array -Elemente in Eimer aufgeteilt werden. Jeder Eimer wird dann an einem separaten Ort gespeichert. Der Speichervorgang kann mit verschiedenen Techniken oder Algorithmen oder durch rekursives Anwenden des Bucket -Sortieralgorithmus durchgeführt werden.

Beispiel:

Jetzt erklären wir die Arbeit von Eimersortierungen mit Hilfe eines Beispiels. Für die Sortierung und Verteilung der Arrays werden verschiedene Methoden angewendet.

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
void bucketsort (float array_0 [], int n)
Vektor B [n];
für (int i = 0; i< n; i++)
int bi_0 = n * array_0 [i];
B [bi_0].push_back (array_0 [i]);

für (int i = 0; i< n; i++)
sortieren (b [i].begin (), b [i].Ende());
int index = 0;
für (int i = 0; i< n; i++)
für (int j = 0; j < b[i].size(); j++)
array_0 [index ++] = b [i] [j];

int main ()
float arr [] = 0.7, 0.5, 0.6, 0.65, 0.4;
int n = sizeof (arr) / sizeof (arr [0]);
Bucketsort (arr, n);
Cout<< "Sorted array is \n";
für (int i = 0; i< n; i++)
Cout<Rückkehr 0;

Zunächst einmal die drei wichtigen Bibliotheken einschließen -, und . Die Bibliothek enthält alle Methoden zum Sortieren und Suchen. Da wir das Array der schwimmenden Punktwerte sortieren werden, ist es obligatorisch, diese Bibliothek in den Code aufzunehmen. Fügen Sie danach die Bibliothek ein, die alle integrierten Methoden enthält, die wir eingeben und die Daten ausgeben müssen. Die dritte und letzte Bibliothek ist . Der Vektor ist wie ein Array, enthält jedoch eine variable Größe. Vektoren können die Größe eines Arrays zur Laufzeit ändern. Das ist ihre Spezialität. Da wir die Vektoren in unserem Code verwenden, ist es wichtig, eine Bibliothek zu importieren, die den Vektor darin enthält.

Verwenden Sie nach dem Import dieser Bibliotheken den „Namespace STD“. Definieren Sie außerdem eine Methode mit dem Namen "Bucketsort" von Rückgabetyp void. Übergeben Sie zwei Parameter darin. Der erste Parameter ist das Float -Array "Array_0", das mit der Bucket -Sortierung sortiert wird. Der zweite Parameter ist eine ganzzahlige Variable "N". Definieren Sie dann ein Vektorarray von Gleitkomma -Datentypen. Das Array ist "B" der Größe "N". Ein Vektor-Array wird verwendet, da die Größe des Arrays unbekannt ist. Fügen Sie nun die Elemente in verschiedenen Eimer mit der "für" -Schloop hinzu. Deklarieren Sie den Iterator "I" und setzen Sie dann die Bedingung auf die Schleife, bis der Iterator die Anzahl der Elemente im Array erreicht. Das Attribut „N“ zeigt die nicht bekannte Arraygröße, die unbekannt ist. Wir beobachten, wie man die Größe eines Arrays in der Main () -Methode bekommt. Inkrementieren Sie den Iterator "I". Definieren Sie eine Variable in der „für“ -Schloop, deren Größe „N“ mit den Array -Werten multipliziert wird, die im Iterator gespeichert sind.

Verwenden Sie im Vektor -Array die Funktion push_back (), um dieses Array -Element zu drücken. Sortieren Sie diese Eimer nach dem Drücken des Arrays in Eimer. Initialisieren Sie den Iterator der Schleife und iterieren Sie, bis er die Größe erreicht und die Schleife weiter erhöht. Sortieren Sie das Array im Körper von „für“, indem Sie die Sort () -Methode der Algorithmus -Bibliothek aufrufen. Übergeben Sie zwei Parameter in dieser Funktion. Das erste Argument zeigt den Anfangsindex des Arrays und das zweite Argument zeigt den Endindex des Arrays. Die Funktion begin () startet die Sortierung und die Funktion end () stoppt im letzten Index. Deklarieren Sie eine Variable außerhalb des Körpers von „für“, um den Index zu erhalten. Verwenden Sie die verschachtelte "für" -Schloop.

Nennen Sie außerdem die Main () -Methode. Erklären Sie hier ein schwimmendes Punktarray „arr“ und initialisieren Sie es. Definieren Sie dann eine Ganzzahl „n“, um die Elemente des Arrays zu erhalten. Die Größe der Größe (arr) erhält die Größe eines Arrays in Bytes. Es multipliziert die Größe mit 10 und die Größe der Größe (arr [0]) erhält die Größe von nur einem Element. Durch die Dividierung können wir die Gesamtkomponenten des Arrays erwerben. Rufen Sie nun die Bucketsort () -Methode auf. Diese Funktion sortiert das Array, indem der Bucket -Sortieralgorithmus angewendet wird. Stellen Sie eine "sortierte Array is" -Meldung auf der Konsole mit dem Befehl "cout" dar. Verwenden Sie zum Anzeigen des sortierten Arrays die Schleife "für" und setzen Sie die Bedingung auf die Anzahl der Elemente des Arrays ein. Verwenden Sie "Cout" im Körper von "for", um das aktualisierte Array anzuzeigen.

Abschluss

Wir haben die Arbeit und Implementierung von Bucket Sort in C besprochen++. Da der Name selbsterklärend ist, teilt es das Array und speichert sie im Eimer. Nach dem Sortieren des Arrays werden alle Eimer in einer Sequenz kombiniert. Diese Eimer -Sortierung wird bevorzugt, wenn wir uns mit schwimmenden Punktwerten befassen. Der Artikel enthält alle Informationen, die Sie vor der Implementierung der Eimer -Sortierung kennen sollten. Einige unterschiedliche Sortierungstechniken und Algorithmen werden verwendet, um das Array zu sortieren. Alle Methoden haben Vor- und Nachteile. Was diese Methode hat, ist der Pluspunkt, an dem sie schnell ist und das Array mit minimalem Vergleich sortiert. Aber wenn wir ein großes Array haben, ist der Eimer -Sort keine gute Option. Der Artikel fasst hier mit einem kurzen Überblick über die Eimer -Sortierung zusammen.