Bubble-Sortierung in Python - Erklärung der Blasensortierung mit Beispielcode

Inhaltsverzeichnis:

Anonim

Einführung in Bubble Sort in Python

Bubble Sort ist ein einfacher und logischer Sortieralgorithmus. Sein Arbeitsprinzip basiert auf dem rekursiven Austauschen benachbarter Elemente, wenn die Reihenfolge falsch ist. In diesem Thema lernen wir die Bubble-Sortierung in Python kennen.

Bubble-Sortierung wird manchmal auch als Sinking-Sortierung oder Ripple-Sortierung bezeichnet.

Schauen wir uns ein Beispiel an:

Erster Lauf

( 6 1 4 3) -> ( 1 6 4 2): Hier werden zwei Elemente getauscht, wenn die Reihenfolge nicht korrekt ist.

(1 6 4 2) -> (1 4 6 2): Hier werden die nächsten beiden Elemente getauscht, wenn die Reihenfolge nicht korrekt ist.

(1 4 6 2 ) -> (1 4 2 6 ): Hier werden die nächsten beiden Elemente getauscht, wenn die Reihenfolge nicht korrekt ist.

Zweiter Lauf

( 1 4 2 6) -> ( 1 4 2 6): Hier werden zwei Elemente verglichen, aber nicht vertauscht, da die Reihenfolge korrekt ist.

(1 4 2 6) -> (1 2 4 6): Hier werden die nächsten beiden Elemente getauscht, da die Reihenfolge nicht korrekt war.

(1 2 4 6 ) -> (1 2 4 6 ): Hier werden die letzten beiden Elemente verglichen, aber nicht vertauscht, wie die Reihenfolge ist

Jetzt wissen wir, dass das Array sortiert aussieht. Es ist jedoch ein Durchlauf ohne Austausch erforderlich, damit der Algorithmus erkennt, ob die Sortierung erfolgt.

Dritter Lauf

( 1 2 4 6) -> ( 1 2 4 6): Keine Vertauschung der ersten beiden Elemente.

(1 2 4 6) -> (1 2 4 6): Kein Tausch der nächsten beiden Elemente.

(1 2 4 6 ) -> (1 2 4 6 ): Kein Swap in den letzten beiden Elementen.

Da zu keinem Zeitpunkt ein Austausch stattgefunden hat, versteht der Algorithmus, dass die Sortierung perfekt ist.

Die Blasensortierung hat ihren Namen, weil sich die Elemente in der richtigen Reihenfolge nach oben bewegen, wie Blasen, die an der Oberfläche aufsteigen.

Bubble-Sortierung in Python-Sprache

Lassen Sie uns nun die logische Implementierung der Blasensortierung durch Python sehen. Python ist heutzutage eine sehr verbreitete Sprache. Wenn Sie es mit Python verstehen, können Sie sicher sein, dass Sie es auch in anderen Sprachen schreiben können.

Python-Code

def bubble_Sort(arr):
m = len(arr)
# Traverse through all the array elements
for u in range(m):
for v in range(0, mu-1):
# traverse the array from 0 to mu-1
# Swap if the element is greater than adjacent next one
if arr(v) > arr(v+1) :
arr(v), arr(v+1) = arr(v+1), arr(v)

Um das Array nach der Blasensortierung zu drucken, müssen Sie den folgenden Code eingeben:

for i in range(len(arr)):
print("%d" %arr(i)),
Here arr will be your array.

Erklärung des Python-Codes

Hier ist "m" die Länge des Arrays. Zwei for-Schleifen enthalten die eigentliche Ground-Logik, wobei "u" das erste Element darstellt, während "v" das zweite Element darstellt, mit dem das erste Element zum Vertauschen verglichen werden muss, wenn die Sortierreihenfolge zwischen beiden nicht korrekt ist.

"Arr (v)> arr (v + 1)" stellt den Vergleich aufeinanderfolgender Elemente dar. Wenn das erste Element größer als das zweite Element ist, wird die Austauschoperation durch folgenden Ausdruck ausgeführt:

Das heißt "arr (v), arr (v + 1) = arr (v + 1), arr (v)".

Diese Austauschoperation wird Swap genannt. Der gute Teil ist, dass für diese Art der Auslagerungsoperation kein temporärer Speicher erforderlich ist.

"U" repräsentiert die Schleife jedes Laufs, während "v" die Stufen jeder Stufe repräsentiert. Auf ein Beispiel im obigen Abschnitt kann verwiesen werden.

Nach dem Ausführen der Blasensortierung wird das sortierte Array mit dem unten angegebenen Code angezeigt:

for i in range(len(arr)):
print ("%d" %arr(i)),

Mal sehen, wie sich das in Python IDE verhält, um ein tieferes Verständnis zu erlangen:

Ausgabe:

Es gibt ein paar Fakten zu Bubble Sort, die jeder kennen sollte, bevor er es implementiert:

  1. Eine Blasensortierung wird oft als eine nicht gute effiziente Sortiermethode angesehen. Da muss es die Gegenstände umtauschen, bis sein endgültiger Standort bekannt ist. Dies alles führt zu einer Verschwendung von Arbeitsabläufen und ist daher sehr kostspielig. Dieser Algorithmus durchläuft jedes Element, bei dem eine Sortierung erforderlich ist oder nicht. Sobald der Lauf ohne Tausch durchgeführt wurde, gilt die Blasensortierung als abgeschlossen.
  2. Dies ist die einfachste unter allen Datenstrukturen. Für jeden Anfänger bedeutet dies eine gute Sicherheit. Es ist leicht zu konstruieren und zu verstehen.
  3. Es verbraucht viel Zeit und Speicher.
  4. Dies wird als stabiler Algorithmus angesehen, da die relative Reihenfolge der Elemente beibehalten wird.
  5. Gilt als gut für kleine Arrays / Listen. Es ist jedoch eine schlechte Idee, es für lange zu verwenden.

Fazit

Wenn man sich den obigen Inhalt der Blasensortierung ansieht, könnte man ein glasklares Verständnis dieses auf Python spezialisierten Sortieralgorithmus haben. Sobald man sich mit der Logik der Blasensortierung vertraut gemacht hat, ist es einfacher, die anderen Datenstrukturen zu verstehen. Ein logischer Ansatz ist die einzige Möglichkeit, sich auf dem Gebiet der Datenstruktur auszuzeichnen. Das Verständnis der Logik des Datenstrukturalgorithmus in jeder Phase und das anschließende Targeting des Codes über Python oder in einer anderen Sprache sollte der richtige Weg sein.

Empfohlene Artikel

Dies ist eine Anleitung zum Sortieren von Blasen in Python. Hier diskutieren wir die logische Implementierung der Blasensortierung durch Python-Code mit der Erklärung. Sie können auch den folgenden Artikel lesen, um mehr zu erfahren -

  1. Schleifen in Python
  2. Python-Dateivorgänge
  3. Palindrom in Python
  4. 3D-Arrays in Python
  5. Python-Funktionen
  6. In PHP tauschen
  7. 3D-Arrays in C ++
  8. Palindrom in C ++
  9. Palindrom in JavaScript
  10. Wie funktionieren Arrays und Listen in Python?