Python Insertion Sort

Python Insertion Sort
In diesem Artikel werden wir über den Algorithmus "Insertion Sort" in Python sprechen. Dies ist der einfachste Sortieralgorithmus und effizienter oder leistungsfähiger für die Behandlung der Daten mit einem kleinen Bereich oder zum Sortieren einer teilweise sortierten Liste. Eine Prozedur, die als Insertions -Sortierung bezeichnet wird. Dieser Algorithmus verwendet einen Ort und einen stabilen Ansatz, um das Array effizient zu sortieren. Hier erklären wir uns im Detail über diesen Sortieralgorithmus und den Insertion -Sortieralgorithmus in Python mit Hilfe von Beispielen implementieren. Lassen Sie uns die Funktionsweise der Einfügungssortierung erläutern.

Wie funktioniert die Insertion -Sortierung??

Die Arbeit der Einfügungssorte wird hier ausführlich besprochen. Die Zahlen werden mit der Insertions -Sortierung sortiert. Es platziert wiederholt das nachfolgende ungewöhnliche Element an der entsprechenden Stelle in der zuvor sortierten Liste. Das grundlegende Konzept besteht darin, das zweite Mitglied mit dem ersten Element des Arrays zu vergleichen, das vermutlich bereits sortiert ist. Wenn das zweite Element ein kleinerer Wert als das erste ist, wird es umgeschaltet. Dieser Vorgang wird für die verbleibenden Array -Elemente wiederholt. Die schlimmsten und durchschnittlichen Fälle von Insertion -Sortierungen haben eine O (N2) -Ttzeitkomplexität, während der beste Fall eine O (N) -Time -Komplexität hat.

Beispiel 1:
Wir nehmen ein lineares Beispiel, um das Konzept der Insertionssorte zu verstehen. Der Referenzcode ist im Folgenden bereitgestellt:

Def Insertionsortalgo (arr):
für n in Bereich (1, Len (arr)):
Key = arr [n]
M = n-1
während m> = 0 und Schlüssel < arr[m] :
arr [m + 1] = arr [m]
m -= 1
arr [M + 1] = Schlüssel
arr = [29, 15, 7, 10, 46]
Insertionsortalgo (arr)
print ("Das Ergebnis des sortierten Arrays ist:", arr)

Wie in diesem Beispiel zu sehen ist, definieren wir eine Einfügungssortierungsfunktion in Zeile 1. Diese Implementierung enthält eine Liste von Zahlen als Eingabe und sortiert die Liste in aufsteigender Reihenfolge. In diesem Beispiel weisen wir die Variable „arr“ als Liste zu. Danach starten wir die äußere Schleife, die den Index des Arrays überprüft. Die „für“ -Schloop wird hier verwendet. Der Bereich beginnt bei 1, was die zweite Zahl in einem Array ist und wird durch die Schleife bis zum letzten Element fortgesetzt.

In dieser Schleife initialisieren wir eine Schlüsselvariable, die den Indexwert nacheinander überprüft. Anschließend erstellen wir eine Variable, die den Wert des Arrays enthält (N-1). Die innere Schleife überprüft nun die Array -Werte. Die innere Schleife beginnt am aktuellen Index der äußeren Schleife und vergleicht das aktuelle Element mit dem vorherigen Element. Wenn das vorherige Element größer ist, wird es nach rechts verschoben und der Index des aktuellen Elements wird verringert. Dies setzt sich fort, bis die richtige Position für das aktuelle Element gefunden wurde.

Das aktuelle Element wird nach Beendigung der inneren Schleife an den entsprechenden Ort gesetzt. Am Ende deklarieren und initialisieren wir das Array mit dem Namen "arr". Wir haben dieses Array in der zuvor beschriebenen Einfügungsfunktion verwendet, um die Sortierung auf dem Array durchzuführen. Zuletzt geben wir das Array in der Druckanweisung zur Verfügung, um das Ergebnis auf der Konsole anzuzeigen.

Die Ausgabe dieses Beispielprogramms ist im Folgenden angegeben:

[7, 10, 15, 29, 46]

Beispiel 2:
Wir werden auch die Insertionssortierung in Python mit Hilfe eines anderen Beispiels erklären. Wir erstellen und führen dieses Beispiel mit jedem Python -Tool wie Pycharm oder Jupiter Notebook aus. Der Referenzcode für dieses andere Beispiel ist im Folgenden beigefügt:

Def SortArray (Arrayx):
für i im Bereich (1, Len (Arrayx)):
temp = arrayx [i]
VorherigesElement = I-1
während vorherige Auslänge> = 0 und Temperatur < arrayX[previousElement]:
Arrayx [VorherigeLement+1] = Arrayx [vorherige Abhängigkeit]
VorherigeLement- = 1
Arrayx [VorherigerElement+1] = Temperatur
Arrayx = [45, 66, 37, 99, 10, 5, 2, 78, 1]
SortArray (Arrayx)
print ("Das Ergebnis des sortierten Arrays ist", Arrayx)

Wir deklarieren ein Array für Sortierzwecke, indem wir die Funktion mit dem Namen "SortArray" definieren. Wir verwenden eine Schleife, um das Array zu durchqueren und die Suche nach Index „1“ zu starten. Wir legen die Länge des Arrays und des Index „1“ in die Bereichsfunktion, in der die Schleife ausgeführt wird. Wir setzen eine andere Variable, in der wir derzeit den Wert der Schleifen -Iteration „I“ im Array speichern, und weisen den Wert der Temporie -Variable zu. Wir speichern den vorherigen Wert, der wahrscheinlich das erste Element des Arrays ist, aus dem wir die Variable „Temp“ vergleichen, um zu suchen, wenn dieser Wert größer oder kleiner ist als der Wert, der in der Variablen „Temp“ gespeichert ist und diese Variable als Variable als "benannt" ist " Vorherige ".

Die innere Schleife nimmt den Wert an, der in der Variablen „Vorherige“ vorhanden ist, um zu überprüfen, ob der Wert größer als „0“ ist. Dann vergleichen wir die beiden Variablen mit dem Namen "Temp" und "Vorheriger", die im Array gespeichert sind. Dieser Wert wird übergeben, bis die Schleife nicht endet. Wenn der Wert des Arrays, der in „VorherigerLement“ gespeichert ist, „+1“ ist, bedeutet dies, dass der anschließende wechselnde Wert geringer ist als der vorherige Wert des Arrays, der in Index „0“ gespeichert ist. Dann tauschen wir diese beiden Variablen aus, durch die der geringere Wert in Richtung Index „0“ verlagert wird und der höhere Wert anstelle einer anderen Variablen verschoben wird.

Hier schreiben wir die Logik, um die Elemente im Array auszutauschen, um die Elemente zu sortieren. Jetzt werden alle Werte des Arrays nacheinander überprüft. Die Änderung der Werteposition ist geringer und wird in Richtung des Beginns des Arrays verschoben. Nehmen wir dieses Array zur Prüfung. Wir starten das Array mit Index "1". Dies bedeutet, dass wir zuerst "66" nehmen. Dann vergleichen wir den Wert von „66“ mit dem vorherigen Wert, der in Index „0“ gespeichert ist, der „45“ ist. Jetzt ist „45“ weniger als "66". Also tauschen wir dann die Variable aus, die den Wert von „66“ speichert. Dann weisen wir den vorherigen Wert des Arrays in der Variablen „Temp“ zu. Jetzt speichern wir den Wert von „45“ in der Variablen „Temp“.

Zuletzt weisen wir den Wert zu, der in „Array [vorheriger +1]“ gespeichert ist, wobei der nächste Wert für den vorherigen Wert gespeichert ist. Danach speichern wir den nächsten früheren Wert in Temperatur, um erneut zu sortieren. Auf diese Weise tauschen wir die größeren und kleineren Werte aus. Also, bis die Schleife gültig ist. Am Ende des Codes zeigen wir das Ergebnis dieses Arrays auf der Konsole über die Druckanweisung an.

Hier wird die Ausgabe dieses Arrays auf der Konsole angezeigt, da das Ergebnis des gespeicherten Arrays ist

[1,2,5,10,37,45,66,78,99].

Abschluss

Wir schließen daraus, dass die Sortierung des Insertions die wichtigste Art der Sortierung ist, mit der alle Elemente eines Arrays in Python sortiert werden. Die Insertions-Sortierung ist ein stabiler und an Ort Ort, aber ineffizienter Algorithmus, der viele Vorteile hat, die wir mit Hilfe von Beispielen diskutiert haben. Hier haben wir das Array in zwei Teile geteilt: sortiert und ungeortiert. Der Vergleich zwischen diesen beiden Teilen erzeugte das sortierte Array am Ende.