bubble sort c with examples
Blasensortiertechnik in C ++.
Die Blasensortierung ist die einfachste Sortiertechnik.
Bei der Blasensortiertechnik wird jedes der Elemente in der Liste mit dem benachbarten Element verglichen. Wenn also n Elemente in Liste A vorhanden sind, wird A (0) mit A (1) verglichen, A (1) wird mit A (2) verglichen und so weiter.
Nach dem Vergleich, ob das erste Element größer als das zweite ist, werden die beiden Elemente dann vertauscht.
=> Besuchen Sie hier für den vollständigen C ++ - Kurs von Experten.
Was du lernen wirst:
Unterschied zwischen Funktions- und Nichtfunktionstests
- Blasensortiertechnik
- Illustration
- C ++ Beispiel
- Java-Beispiel
- Komplexitätsanalyse des Blasensortierungsalgorithmus
- Fazit
- Literatur-Empfehlungen
Blasensortiertechnik
Unter Verwendung der Blasensortiertechnik erfolgt das Sortieren in Durchgängen oder Iterationen. Somit wird am Ende jeder Iteration das schwerste Element an der richtigen Stelle in der Liste platziert. Mit anderen Worten, das größte Element in der Liste sprudelt.
Wir haben unten einen allgemeinen Algorithmus der Blasensortiertechnik angegeben.
Allgemeiner Algorithmus
Schritt 1 : Für i = 0 bis N-1 Schritt 2 wiederholen
Schritt 2 : Für J = i + 1 bis N - wiederhole ich
Schritt 3 : wenn A (J)> A (i)
Tauschen Sie A (J) und A (i)
(Ende der inneren for-Schleife)
(End if Outer for loop)
Schritt 4 : Ausgang
Hier ist ein Pseudocode für den Blasensortierungsalgorithmus, bei dem wir die Liste mit zwei iterativen Schleifen durchlaufen.
In der ersten Schleife beginnen wir mit der 0thElement und in der nächsten Schleife beginnen wir von einem benachbarten Element. Im inneren Schleifenkörper vergleichen wir jedes der benachbarten Elemente und tauschen sie aus, wenn sie nicht in Ordnung sind. Am Ende jeder Iteration der äußeren Schleife sprudelt am Ende das schwerste Element auf.
Pseudocode
Procedure bubble_sort (array , N) array – list of items to be sorted N – size of array begin swapped = false repeat for I = 1 to N-1 if array(i-1) > array(i) then swap array(i-1) and array(i) swapped = true end if end for until not swapped end procedure
Das oben angegebene ist der Pseudocode für die Blasensortiertechnik. Lassen Sie uns diese Technik nun anhand einer detaillierten Darstellung veranschaulichen.
Illustration
Wir nehmen ein Array der Größe 5 und veranschaulichen den Blasensortierungsalgorithmus.
Array vollständig sortiert.
Die obige Abbildung kann in tabellarischer Form wie folgt zusammengefasst werden:
Bestehen | Unsortierte Liste | Vergleich | Sortierte Liste |
---|---|---|---|
{5,0,10,12,15} | {10.12} | {5,0,10,12,15} | |
1 | {10,5,15,0,12} | {10.5} | {5,10,15,0,12} |
{5,10,15,0,12} | {10.15} | {5,10,15,0,12} | |
{5,10,15,0,12} | {15.0} | {5,10,0,15,12} | |
{5,10,0,15,12} | {15.12} | {5,10,0,12,15} | |
zwei | {5,10,0,12,15} | {5,10} | {5,10,0,12,15} |
{5,10,0,12,15} | {10.0} | {5,0,10,12,15} | |
3 | {5,0,10,12,15} | {5,0} | {0,5,10,12,15} |
{5,0,10,12,15} | {5,10} | {5,0,10,12,15} | |
{5,0,10,12,15} | SORTIERT |
Wie in der Abbildung gezeigt, sprudelt bei jedem Durchgang das größte Element bis zum letzten, wodurch die Liste bei jedem Durchgang sortiert wird. Wie in der Einleitung erwähnt, wird jedes Element mit seinem benachbarten Element verglichen und miteinander ausgetauscht, wenn sie nicht in Ordnung sind.
Wie in der obigen Abbildung gezeigt, wird am Ende des ersten Durchgangs das größte Element am Ende der Liste platziert, wenn das Array in aufsteigender Reihenfolge sortiert werden soll. Beim zweiten Durchgang wird das zweitgrößte Element an der vorletzten Position in der Liste platziert und so weiter.
Wenn wir N-1 erreichen (wobei N die Gesamtzahl der Elemente in der Liste ist), wird die gesamte Liste sortiert.
Was ist die beste vr App
Die Blasensortiertechnik kann in jeder Programmiersprache implementiert werden. Wir haben den Blasensortierungsalgorithmus unten in C ++ und Java implementiert.
C ++ Beispiel
Sehen wir uns ein Programmierbeispiel an, um die Blasensortierung zu demonstrieren.
#include using namespace std; int main () { int i, j,temp,pass=0; int a(10) = {10,2,0,14,43,25,18,1,5,45}; cout <<'Input list ...
'; for(i = 0; i<10; i++) { cout < Ausgabe:
Eingabeliste…
10 2 0 14 43 25 18 1 5 45
Liste sortierter Elemente…
0 1 2 5 10 14 18 25 43 45
Anzahl der Durchgänge zum Sortieren der Liste: 10
Java-Beispiel
class Main { public static void main(String() args) { int pass = 0; int() a = {10,-2,0,14,43,25,18,1,5,45}; System.out.println('Input List...'); for(int i=0;i<10;i++) { System.out.print(a(i) + ' '); } for(int i=0;i<10;i++) { for (int j=0;j<10;j++) { if(a(i) Ausgabe:
In beiden Programmen haben wir ein Array von 10 Elementen verwendet und es mit der Blasensortiertechnik sortiert. In beiden Programmen haben wir zwei for-Schleifen verwendet, um die benachbarten Elemente des Arrays zu durchlaufen.
Am Ende jedes Durchgangs (äußere Schleife) wird das größte Element im Array bis zum Ende des Arrays gesprudelt. Wir zählen auch die Anzahl der Durchgänge, die zum Sortieren des gesamten Arrays erforderlich sind.
Komplexitätsanalyse des Blasensortierungsalgorithmus
Aus dem Pseudocode und der Abbildung, die wir oben gesehen haben, führen wir in Blasensortierung N-1-Vergleiche im ersten Durchgang, N-2-Vergleiche im zweiten Durchgang usw. durch.
Daher beträgt die Gesamtzahl der Vergleiche bei der Blasensortierung:
I = (n-1) + (n-2) + (n-3) + ... + 3 + 2 + 1
= N (N-1) / 2
= O (nzwei) => Zeitliche Komplexität der Blasensortiertechnik
Daher sind die verschiedenen Komplexitäten für die Blasensortiertechnik unten angegeben:
Zeitkomplexität im schlimmsten Fall O (n 2) Best-Case-Zeitkomplexität Auf) Durchschnittliche Zeitkomplexität O (n 2) Raumkomplexität O (1)
Die Blasensortiertechnik benötigt nur einen einzigen zusätzlichen Speicherplatz für die temporäre Variable, um das Austauschen zu erleichtern. Daher ist die Raumkomplexität für den Blasensortierungsalgorithmus O (1).
Fragen und Antworten von Devops Engineer-Interviews
Beachten Sie, dass die beste Zeitkomplexität für die Blasensortiertechnik besteht, wenn die Liste bereits sortiert ist und dies O (n) ist.
Fazit
Der Hauptvorteil von Bubble Sort ist die Einfachheit des Algorithmus. Bei der Blasensortierung sprudelt bei jedem Durchgang das größte Element bis zum Ende der Liste, wenn das Array in aufsteigender Reihenfolge sortiert ist.
In ähnlicher Weise befindet sich das kleinste Element am Ende jedes Durchgangs an der richtigen Stelle, damit die Liste in absteigender Reihenfolge sortiert wird.
Als einfachste und am einfachsten zu implementierende Sortiertechnik wird die Blasensortierung normalerweise verwendet, um dem Publikum die Sortierung näher zu bringen. Zweitens wird die Blasensortierung auch in Anwendungen wie Computergrafiken verwendet, bei denen das Füllen von Polygonkanten usw. eine Blasensortierung erfordert, um die Eckpunkte zu sortieren, die das Polygon auskleiden.
In unserem nächsten Tutorial erfahren Sie mehr über die Auswahlsortierung.
=> Besuchen Sie hier, um C ++ von Grund auf neu zu lernen.
Literatur-Empfehlungen
- Shell-Sortierung in C ++ mit Beispielen
- Auswahl In C ++ mit Beispielen sortieren
- MongoDB Sort () -Methode mit Beispielen
- Unix-Sortierbefehl mit Syntax, Optionen und Beispielen
- Einfügungssortierung in C ++ mit Beispielen
- Sortierung in C ++ mit Beispielen zusammenführen
- Heap-Sortierung in C ++ mit Beispielen
- Schnelle Sortierung in C ++ mit Beispielen