Bubble Sort Python

Bubble Sort Python
Sortieren ist der Prozess der Anordnung der Werte in Form von Listen in der Reihenfolge. Verschiedene Arten des Sortierens von Diskriminierung aufgrund ihrer Nutzungstechniken und Ansätze wie Schnellsorten, Sortierart, Zusammenführungsart, Blasensortierung usw. Dieses Tutorial bezieht sich auf die Blase -Sortierung.

Blasenart

Dies ist die Anordnung von Elementen eines Arrays, das sich mit dem einfachsten Sortieralgorithmus befasst.

Blasensorten funktionieren

Um die Werte in aufsteigender Reihenfolge zu sortieren, enthält die erste Iteration den Vergleich und Tauschprozess. Der erste und der zweite Indexwert werden verglichen. Wenn die Bedingung erfüllt ist, tritt der Austausch auf und wird bis zum Ende wiederholt.

Algorithmus / Pseudo -Code für die Blasensortierung

Funktion (Array)
Denn ich rechts Value
linke und rechts auszutauschen
Endfunktion

Beispiel 1

Der Bubble -Sortiermechanismus wird auf die Python -Programmiersprache angewendet, indem die Funktion namens Bubble -Sortierung verwendet wird. Die Syntax für die Funktion ist, dass ein Schlüsselwort 'DEF' zusammen mit dem Namen der Funktion verwendet wird. Im Funktionsparameter haben wir ein Array übergeben, das von der Funktion sortiert werden soll. Jetzt werden wir die vollständige Funktionalität sehen oder sagen, dass der Kern des gesamten Sortierprozesses im Körper der Funktion definiert ist. Erstens werden wir die Länge des Arrays einer Variablen über einen Zuordnungsoperator mit der integrierten Funktion Len () angeben.

# n = len (arr)

Für den Zugriff auf ein Element in einem Array verwenden wir in jeder Programmiersprache immer eine für Schleife. So nutzt Python auch die „für“ -Schloop im Sortierprozess, um es für den Benutzer machbar zu machen. Das Array wird also durch die Verwendung einer für eine Schleife durchquert.

# Für i in Reichweite (n - 1):

Hier ist „I“ die Variable, die die Indexnummer im Array mit dem Array einer festen Größe abzüglich eines darstellt. Da 'n' die Größe des Arrays darstellt, repräsentiert (n-1) das Durchlaufen der Schleife zur Position der Größe minus eins, damit wir die Schleife nach einer einzelnen Iteration einmal wieder iterieren können.

Wie oben beschrieben, werden die beiden nächsten benachbarten Indizes für die Blasensorte verglichen. Durch die Verwendung der obigen Schleife zugreifen wir auf einen Index. Sagen Sie den ersten, um auf den nächsten Index zuzugreifen; Wir brauchen weiter eine Schleife. Dies ist die innere Schleife, und das oben genannte wird als äußere Schleife deklariert. Dieses Phänomen ähnelt dem zweidimensionalen Array (2D). Lassen Sie uns also die innere Schleife deklarieren.

# für J in Reich (0, N-I-1):

Die 'J' Iterieren Sie bis zur Position des Subtrahierens des Wertes von „I“ von der Größe des Arrays zusammen mit '-1'. Dies führt zu den angrenzenden zwei Indizes im Array.

Wir haben im Array auf zwei Werte zugegriffen, und es ist Zeit, sie zu vergleichen, da wir wissen, dass der Vergleich durch die Winkelhalterungen durchgeführt wird. Wir müssen die Klammer von '>' für die aufsteigende Sortierung verwenden.

Wenn arr [j]> arr [j + 1]:
arr [j], arr [j +1] = arr [j + 1], arr [j]

Wenn der Wert auf der linken Seite, auf den zuerst zugegriffen wird. Bewegen Sie sich im anderen Fall in Richtung der nächsten Position. Dies war die Hauptlogikfunktion der Blasensorte.

Springen aus den Schleifen. Danach deklarieren wir das Array und übergeben es durch einen Funktionsaufruf an die Funktion.

Bubblesort (arr).

Danach wird das sortierte Array gedruckt. In der resultierenden Konsole wird der resultierende Wert angezeigt.

Sie können sehen, dass das Eingabearray die Zufallswerte enthält, während im resultierenden Array alle Elemente in aufsteigender Reihenfolge sortiert werden.

Beispiel 2

Das obige Beispiel befasst sich damit, alle möglichen Vergleiche fortzusetzen, auch wenn das gesamte Array bereits sortiert ist. Dies führt zur Zeitverlängerung der Ausführung im gesamten Array. Um die Ausführung zeitlich begrenzt zu machen, werden wir eine dritte Variable verwenden. Hier verwenden wir eine boolesche Variable, um den Wert der Variablen als wahr festzulegen, wenn der Austausch auftritt. Ansonsten wird es als falsch angesehen.

Nach jeder Iteration ist der Wert falsch, wenn kein Austausch aufgrund des Austauschs auftritt. Es bezieht sich darauf, wenn alle Elemente in einem Array bereits sortiert sind, und es gibt keine weitere Anforderung, sie zu sortieren. Dieses Phänomen kann leicht verwendet werden und kann die Ausführungszeit verkürzen und von der Optimierung der Blasensorte profitieren.

In der Bubble -Sortierfunktion wurde die Länge als Variable deklariert. Eine zusätzliche Variable wird anfangs standardmäßig als falsch deklariert. Aber sein Wert ändert sich, wenn der Tauschprozess stattfindet.

Ausgetauscht = falsch

Innerhalb der äußeren und der inneren Schleife erfolgt der Vergleich zwischen den Werten bestimmter Indizes; Wenn die Werte ausgetauscht werden müssen, wird die ausgetauschte Variable in "TRUE" verwandelt, und die Werte werden erfolgreich getauscht.

Wenn jedoch keine zwei Werte ausgetauscht werden, tritt bei den Werten kein Austausch auf, sodass die ausgetauschte Variable falsch bleibt. Und dann tritt die Pause auf. Diese Überprüfung wird durch eine Iffatement erreicht.

Wenn ausgetauscht == falsch

Brechen

Diese Pause wird dafür verantwortlich sein, die Schleife daran zu hindern, weiter auszuführen. Wie in diesem Beispiel tritt die Pause am Index von 1,2 und 3 auf.

Nach dem Speichern der Datei können die Ausführungswerte über die Konsole erkennen. Sie können die resultierenden Werte sehen, die in aufsteigender Reihenfolge angeordnet sind.

Beispiel 3

In diesem Beispiel folgt dem gleichen Konzept wie im zweiten Beispiel, indem derselbe boolesche ausgetauscht unter Verwendung einer anderen Variablen zum Zeitpunkt des Austauschs der Werte verwendet wird. Dies ist ein Temperaturwert. Dies ist eine Vorlage, die die Werte vorübergehend speichert.

Das gleiche obige Beispiel wird hier verwendet. Betrachten Sie hier nur das Tauschverfahren. Der erste Indexwert wird in der Variablen -Temperatur in den Schleifen gespeichert. Und dieser Speicherplatz ist mit dem Wert daneben in dem Array gefüllt, mit dem der vorherige Wert verglichen wird. Und dieser nächste Wert wird nun durch den in der Temperatur vorhandenen Wert ersetzt. Dies wird als indirekte Zuordnung von Werten bezeichnet und verwendet mehr Schritte als die direkte Zuordnung von Werten.

Die ausgetauschte Variable wird im Tauschfall als wahr erklärt. Führen Sie den Code aus, um die Ergebnisse zu sehen.

Abschluss

Der Artikel "Blasensort" enthält eine kurze Einführung in die Sortiermethode durch den Algorithmus. Ein detaillierter Prozess der Blasensorte mit einem Schritt-für-Schritt-Ansatz wird diskutiert. Das Spyder-Tool wird für die Implementierung von Python-bezogenen Programmen empfohlen. Jedes elementare Beispiel zeigt die Verwendung von Blasensort in der Python -Sprache.