Bubble Sort Algorithmus mit Python Beispiel mit Listenverwendung

โšก Intelligente Zusammenfassung

BubblDie Sortierfunktion ordnet Listenelemente in aufsteigender Reihenfolge an, indem sie wiederholt benachbarte Werte vergleicht und vertauscht.ping Sortieren Sie die Datensรคtze, wenn das linke Element grรถรŸer ist. Diese einfache Vergleichssortierung eignet sich fรผr kleine oder nahezu sortierte Datensรคtze und vermittelt auf effektive Weise die grundlegende Sortierlogik.

  • ๐Ÿ” Kernmechanismus: BubblDer Sortieralgorithmus vergleicht jedes Paar benachbarter Elemente und vertauscht sie, wobei der grรถรŸte unsortierte Wert nach jedem Durchlauf an seine endgรผltige Position verschoben wird.
  • โš™๏ธ Optimierte Variante: Eine Flag-Variable erkennt, wenn ein Durchlauf keine Vertauschungen vornimmt, und bricht die Schleife vorzeitig ab, sodass eine bereits sortierte Liste in einem einzigen Durchlauf fertiggestellt wird.
  • ๐Ÿ Python Implementierung: Zwei verschachtelte Schleifen und eine temporรคre Variable sortieren die Liste, und die Schritt-fรผr-Schritt-Anleitung ordnet jeder Zeile ihr genaues Verhalten zu.
  • ๐Ÿ“Š Komplexitรคtsprofil: Die Zeitkomplexitรคt betrรคgt im schlechtesten und durchschnittlichen Fall O(nยฒ), im besten Fall ฮฉ(n), bei einem konstanten Speicherplatzbedarf von O(1).
  • ๐ŸŽฏ beste Passform: BubblDer e sort-Algorithmus eignet sich hervorragend fรผr das Lehren und fรผr nahezu sortierte Listen, schneidet aber bei groรŸen Datensรคtzen im Vergleich zu fortgeschrittenen Algorithmen schlecht ab.

Bubble-Sort-Algorithmus

Non-Profit Bubble Sortieren?

Bubble Sortieren Der Algorithmus ordnet Listenelemente aufsteigend, indem er zwei benachbarte Werte vergleicht. Ist der erste Wert grรถรŸer als der zweite, rรผckt der erste Wert an die Stelle des zweiten und umgekehrt. Ist der erste Wert kleiner als der zweite, findet kein Tausch statt.ping erledigt.

Dieser Vorgang wird wiederholt, bis alle Werte einer Liste verglichen und gegebenenfalls ausgetauscht wurden. Jede Iteration wird normalerweise als Durchgang bezeichnet. Die Anzahl der Durchgรคnge bei einer Blasensortierung entspricht der Anzahl der Elemente in einer Liste minus eins.

In dieser Bubble Sortieren in Python Lernprogramm Sie lernen das Problem kennen, das es lรถst, seine optimierte Form, eine schrittweise visuelle Anleitung und ein funktionierendes Beispiel. Python Programm und seine Leistungsmerkmale.

Implementierung der Bubble-Sort-Algorithmus

Wir werden die Implementierung in drei (3) Schritte unterteilen, nรคmlich das Problem, die Lรถsung und den Algorithmus, mit dem wir Code fรผr jede beliebige Sprache schreiben kรถnnen.

Das Problem

Eine Liste von Gegenstรคnden ist in zufรคlliger Reihenfolge gegeben, und wir mรถchten die Gegenstรคnde in eine geordnete Reihenfolge bringen.

Betrachten Sie die folgende Liste:

[21, 6, 9, 33, 3]

Die Lรถsung

Iteriere durch die Liste, vergleiche zwei benachbarte Elemente und tausche sie aus.ping sie, wenn der erste Wert hรถher ist als der zweite Wert.

Das Ergebnis sollte wie folgt aussehen:

[3, 6, 9, 21, 33]

Algorithmus

Der Bubble-Sort-Algorithmus funktioniert wie folgt:

Schritt 1) Ermitteln Sie die Gesamtanzahl der Elemente. Ermitteln Sie die Gesamtanzahl der Eintrรคge in der gegebenen Liste.

Schritt 2) Bestimme die Anzahl der รคuรŸeren Durchlรคufe (n โ€“ 1). Ihre Lรคnge ist die Liste minus eins.

Schritt 3) Fรผhre den inneren Durchlauf (n โ€“ 1) Mal fรผr den ersten รคuรŸeren Durchlauf aus. Ermittle den Wert des ersten Elements und vergleiche ihn mit dem Wert des zweiten Elements. Ist der zweite Wert kleiner als der erste, vertausche die Positionen.

Schritt 4) Wiederhole Schritt 3, bis du den รคuรŸersten Durchlauf (n โ€“ 1) erreicht hast. Nimm das nรคchste Element der Liste und wiederhole dann den Vorgang aus Schritt 3, bis alle Werte in der korrekten aufsteigenden Reihenfolge angeordnet sind.

Schritt 5) Gib das Ergebnis zurรผck, sobald alle Durchlรคufe abgeschlossen sind. Gib die Ergebnisse der sortierten Liste zurรผck.

Schritt 6) Algorithmus optimieren.

Vermeiden Sie unnรถtige innere Durchgรคnge, wenn die Liste oder angrenzende Werte bereits sortiert sind. Wenn die bereitgestellte Liste beispielsweise bereits Elemente enthรคlt, die in aufsteigender Reihenfolge sortiert wurden, kรถnnen wir die Schleife vorzeitig unterbrechen.

Optimiert Bubble-Sort-Algorithmus

StandardmรครŸig ist der Algorithmus fรผr Bubblesort in Python vergleicht alle Elemente in der Liste, unabhรคngig davon, ob die Liste bereits sortiert ist oder nicht. Wenn die angegebene Liste bereits sortiert ist, ist der Vergleich aller Werte eine Verschwendung von Zeit und Ressourcen.

Die Optimierung der Blasensortierung hilft uns, unnรถtige Iterationen zu vermeiden und Zeit und Ressourcen zu sparen.

Wenn beispielsweise das erste und das zweite Element bereits sortiert sind, ist es nicht erforderlich, die restlichen Werte zu durchlaufen. Die Iteration wird beendet und die nรคchste gestartet, bis der Prozess wie unten gezeigt abgeschlossen ist. Bubble Sortierbeispiel.

Die Optimierung erfolgt in folgenden Schritten:

Schritt 1) Erstelle eine Flag-Variable, die รผberwacht, ob ein Tauschvorgang stattfindet.ping ist in der inneren Schleife aufgetreten.

Schritt 2) Wenn die Werte ihre Positionen getauscht haben, fahre mit der nรคchsten Iteration fort.

Schritt 3) Falls die Werte ihre Positionen nicht getauscht haben, beenden Sie die innere Schleife und fahren Sie mit der รคuรŸeren Schleife fort.

Eine optimierte Blasensortierung ist effizienter, da sie nur die notwendigen Schritte ausfรผhrt und diejenigen รผberspringt, die nicht erforderlich sind.

Visuelle Darstellung

Die folgenden Bilder veranschaulichen, wie der Bubble-Sort-Algorithmus die Werte einer Liste von fรผnf Elementen durchlรคuft, um sie zu sortieren.

Das folgende Bild zeigt die unsortierte Liste:

Bubble Unsortierte Liste sortieren

Erste Iteration

Schritt 1)

Bubble Sortiere 21 und 6.

Die Werte 21 und 6 werden verglichen, um zu prรผfen, welcher Wert grรถรŸer als der andere ist.

Bubble Sort swapping 21 und 6 zur Verfรผgung

Da 21 grรถรŸer als 6 ist, nimmt 21 die Position ein, die zuvor von 6 besetzt war, wรคhrend 6 die Position einnimmt, die zuvor von 21 besetzt war.

Bubble Sortiere die geรคnderte Liste nach dem Tausch

Unsere geรคnderte Liste sieht jetzt wie oben aus.

Schritt 2)

Bubble Sortiere 21 und 9.

Die Werte 21 und 9 werden verglichen.

Bubble Sort swapping 21 und 9 zur Verfรผgung

21 ist grรถรŸer als 9, also tauschen wir die Positionen von 21 und 9.

Bubble Sortiere die neue Liste nach dem Tausch

Die neue Liste sieht nun wie oben aus.

Schritt 3)

Bubble Sortiere 21 und 33.

Die Werte 21 und 33 werden verglichen, um den grรถรŸeren Wert zu ermitteln.

Bubble Sorte 33 grรถรŸer als 21 kein Tausch

Der Wert 33 ist grรถรŸer als 21, daher kein Tausch.ping stattfindet.

Schritt 4)

Bubble Sortiere 33 und 3.

Die Werte 33 und 3 werden verglichen, um den grรถรŸeren Wert zu ermitteln.

Bubble Sort swapping 33 und 3 zur Verfรผgung

Der Wert 33 ist grรถรŸer als 3, daher tauschen wir ihre Positionen.

Bubble Sortiere die sortierte Liste nach der ersten Iteration

Die sortierte Liste am Ende der ersten Iteration sieht aus wie die obige.

Zweite Iteration

Die neue Liste nach der zweiten Iteration lautet wie folgt:

Bubble Sortierliste nach der zweiten Iteration

Dritte Iteration

Die neue Liste nach der dritten Iteration lautet wie folgt:

Bubble Sortierliste nach der dritten Iteration

Vierte Iteration

Die neue Liste nach der vierten Iteration lautet wie folgt:

Bubble Sortiere die vollstรคndig sortierte Liste nach der vierten Iteration

Python Beispiele

Der folgende Code zeigt, wie die implementiert wird Bubble Sortieralgorithmus in Python.

def bubbleSort(theSeq):
    n = len(theSeq)

    for i in range(n - 1):
        flag = 0

        for j in range(n - 1):
            if theSeq[j] > theSeq[j + 1]:
                tmp = theSeq[j]
                theSeq[j] = theSeq[j + 1]
                theSeq[j + 1] = tmp
                flag = 1

        if flag == 0:
            break

    return theSeq

el = [21, 6, 9, 33, 3]
result = bubbleSort(el)
print(result)

Ausfรผhren des obigen Bubblesort-Programms in Python fรผhrt zu folgenden Ergebnissen:

[3, 6, 9, 21, 33]

Code Erlรคuterung

Die Erklรคrung fรผr die Python BubblDer Programmcode fรผr e Sort lautet wie folgt:

Bubble Sortieren Python Code-Erklรคrung

HIER,

  1. Definiert eine Funktion bubbleSort, die einen Parameter theSeq akzeptiert. Der Code gibt nichts aus.
  2. Ermittelt die Lรคnge des Arrays und weist den Wert einer Variablen n zu. Der Code gibt nichts aus.
  3. Es wird eine for-Schleife gestartet, die den Bubble-Sort-Algorithmus (n โ€“ 1) Mal ausfรผhrt. Dies ist die รคuรŸere Schleife. Der Code gibt keine Ausgabe aus.
  4. Definiert eine Flag-Variable, die angibt, ob ein Tausch stattgefunden hat oder nicht. Dies dient der Optimierung. Der Code gibt keine Ausgabe aus.
  5. Startet die innere Schleife, die alle Werte in der Liste vom ersten bis zum letzten vergleicht. Der Code gibt nichts aus.
  6. Verwendet die if-Anweisung, um zu prรผfen, ob der Wert auf der linken Seite grรถรŸer ist als der Wert auf der unmittelbar rechten Seite. Der Code gibt nichts aus.
  7. Weist der temporรคren Variable tmp den Wert von theSeq[j] zu, falls die Bedingung als wahr ausgewertet wird. Der Code gibt keine Ausgabe aus.
  8. Der Wert von theSeq[j + 1] wird der Position theSeq[j] zugewiesen. Der Code gibt keine Ausgabe aus.
  9. Der Wert der Variablen tmp wird der Position theSeq[j + 1] zugewiesen. Der Code gibt nichts aus.
  10. Der Flag-Variablen wird der Wert 1 zugewiesen, um anzuzeigen, dass ein Tausch stattgefunden hat. Der Code gibt keine Ausgabe aus.
  11. Verwendet eine if-Anweisung, um zu prรผfen, ob der Wert der Variablen flag 0 ist. Der Code gibt nichts aus.
  12. Wenn der Wert 0 ist, rufen wir die Break-Anweisung auf, die die innere Schleife verlรคsst.
  13. Gibt den Wert von theSeq zurรผck, nachdem es sortiert wurde. Der Code gibt die sortierte Liste aus.
  14. Definiert eine Variable el, die eine Liste von Zufallszahlen enthรคlt. Der Code gibt nichts aus.
  15. Weist den Wert der Funktion bubbleSort einer Variablen result zu.
  16. Gibt den Wert der Variablen result aus.

BubblVorteile von e sort

Im Folgenden werden einige Vorteile des Bubble-Sort-Algorithmus aufgefรผhrt:

  • Es ist leicht zu verstehen.
  • Es funktioniert sehr gut, wenn die Liste bereits oder fast sortiert ist.
  • Es ist kein umfangreicher Speicher erforderlich.
  • Es ist einfach, den Code fรผr den Algorithmus zu schreiben.
  • Der Platzbedarf ist im Vergleich zu anderen Sortieralgorithmen minimal.

BubblNachteile der E-Sortierung

Im Folgenden werden einige Nachteile des Bubble-Sort-Algorithmus aufgefรผhrt:

  • Beim Sortieren groรŸer Listen ist die Leistung nicht gut. Es kostet zu viel Zeit und Ressourcen.
  • Es wird hauptsรคchlich fรผr akademische Zwecke und nicht fรผr Anwendungen in der realen Welt verwendet.
  • Die Anzahl der zum Sortieren der Liste erforderlichen Schritte liegt in der GrรถรŸenordnung n2.

Komplexitรคtsanalyse von Bubble Sortieren

Es gibt drei Arten von Komplexitรคt:

1) Komplexitรคt sortieren

Die Sortierkomplexitรคt gibt an, wie viel Zeit und Speicherplatz zum Sortieren einer Liste benรถtigt werden. Der Bubblesort-Algorithmus benรถtigt (n โ€“ 1) Iterationen, um die Liste zu sortieren, wobei n die Gesamtzahl der Elemente in der Liste ist.

2) Zeitliche Komplexitรคt

Die Zeitkomplexitรคt des Bubblesort betrรคgt O(n2).

Die zeitlichen Komplexitรคten kรถnnen wie folgt kategorisiert werden:

  • Schlimmsten Fall โ€“ hier erfolgt die Auflistung in absteigender Reihenfolge. Der Algorithmus fรผhrt die maximale Anzahl von Ausfรผhrungen durch, die als [Big-O] O(n) ausgedrรผckt wird2).
  • bester Fall Dies tritt auf, wenn die bereitgestellte Liste bereits sortiert ist. Der Algorithmus fรผhrt die minimale Anzahl an Ausfรผhrungen durch, die als [Big-Omega] ฮฉ(n) ausgedrรผckt wird.
  • Durchschnittlicher Fall Dies tritt auf, wenn die Liste in zufรคlliger Reihenfolge vorliegt. Die durchschnittliche Komplexitรคt wird als [Big-theta] โŠ(n) dargestellt.2).

3) Raumkomplexitรคt

Die Speicherkomplexitรคt misst den zusรคtzlichen Speicherplatz, der zum Sortieren der Liste benรถtigt wird. Der Bubblesort benรถtigt lediglich einen (1) zusรคtzlichen Speicherplatz fรผr die temporรคre Variable, die zum Vertauschen verwendet wird.ping Daher hat es eine Speicherkomplexitรคt von O(1).

Hรคufig gestellte Fragen

BubblBubble Sort wird in produktiven KI-Systemen selten eingesetzt, hilft aber, die Sortierlogik hinter der Datenaufbereitung zu verstehen. Machine-Learning-Pipelines sortieren Merkmale, Bewertungen und Vorhersagen mithilfe schnellerer Algorithmen, dennoch verdeutlicht Bubble Sort Anfรคngern das Konzept des Vergleichens und Austauschens.

Ja. KI-Assistenten kรถnnen Bubble Sort programmieren. Python, Javaden C++ und fรผgen die Flag-Optimierung hinzu, die bei sortierten Listen frรผhzeitig stoppt. Sie kรถnnen auch schnellere Algorithmen vorschlagen, wenn der Datensatz groรŸ wird.

Man nennt es Bubble Sort, weil grรถรŸere Werte bei jedem Durchlauf allmรคhlich zum Ende der Liste โ€žaufsteigenโ€œ, รคhnlich wie Luftblasen an die Wasseroberflรคche steigen, wรคhrend kleinere Werte zum Anfang sinken.

BubblDer e-Sort-Algorithmus hat eine Laufzeit von O(nยฒ), was deutlich langsamer ist als Quicksort und Mergesort mit O(n log n). BubblE-Sort eignet sich fรผr kleine oder Lehrbeispiele, wรคhrend Quicksort und Mergesort groรŸe, reale Datensรคtze effizient verarbeiten.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: