Eine Einführung in den Insertionssortalgorithmus

Eine Einführung in den Insertionssortalgorithmus

Insertion Sort ist eine Technik, bei der eine sortierte Unterliste verwendet und kontinuierlich ein Wert aus der unsortierten Liste hinzugefügt wird, bis die gesamte Liste sortiert ist.





Der Algorithmus beginnt mit dem ersten Listenelement als sortierte Unterliste. Es vergleicht dann die nächste Zahl mit der ersten. Wenn es größer ist, wird es in den ersten Index eingefügt. Andernfalls wird es in seinem Index belassen.





Der dritte Wert wird dann mit den anderen beiden verglichen und dann in den richtigen Index eingefügt. Dieser Vorgang wird fortgesetzt, bis die gesamte Liste sortiert ist.





Ein genauerer Blick auf die Einfügesortierung

Die obige Beschreibung hat für Sie möglicherweise keinen Sinn gemacht. Ein Beispiel sollte Ihnen helfen, viel besser zu verstehen.

Angenommen, Sie haben eine Liste: [39, 6, 2, 51, 30, 42, 7].



Der Algorithmus identifiziert 39 als den ersten Wert der sortierten Unterliste. Die Auswertung geht dann auf die zweite Position über.

Verwandte: Dynamische Programmierung: Beispiele, häufige Probleme und Lösungen





6 wird dann mit 39 verglichen. Da 6 kleiner als 39 ist, wird 6 an erster Stelle und 39 an zweiter Stelle eingefügt. Die neue Listenreihenfolge ist nach dem ersten Durchlauf jetzt:

[6, 39, 2, 51, 30, 42, 7]





Die Auswertung verschiebt sich nun auf die dritte Position. 2 wird mit den letzten beiden Zahlen verglichen und dann an der richtigen Stelle eingefügt. Die neue Listenreihenfolge ist nach dem zweiten Durchgang jetzt:

[2, 6, 39, 51, 30, 42, 7]

Für den dritten Durchgang ist die Listenreihenfolge:

[2, 6, 39, 51, 30, 42, 7]

Der Vorgang wiederholt sich, bis die gesamte Liste sortiert ist.

Siehe das Diagramm unten, das diese Operationen zusammenfasst:

Algorithmusanalyse

Die Zeitkomplexität von Insertion Sort ist O(n2), so wie Blase sortieren . Die Anzahl der Vergleiche im Worst-Case-Szenario ist die Summe aller ganzen Zahlen von 1 bis (n-1), was eine quadratische Summe ergibt.

Codeimplementierung

Der folgende Python- und Java-Code zeigt, wie Sie die Insertion Sort-Methode implementieren können.

Python:

def insertionSort(mylist):
for step in range(1, len(mylist)):
current_element = mylist[step]
position = step
while position > 0 and mylist[position - 1] > current_element:
mylist[position] = mylist[position - 1]
position = position - 1
mylist[position] = current_element

Java:

void insertionSort(int[] myarray) {
int n = myarray.length;
for (int x = 1; x int key = myarray[x];
int y = x-1;
while ( (y > -1) && ( myarray [y] > key ) ) {
myarray [y+1] = myarray [y];
y--;
}
myarray[y+1] = key;
}
}

Bessere Codierung mit Pseudocode

Die obigen Codebeispiele wurden ohne Pseudocode angegeben, auf den Sie verweisen können, um diesen Algorithmus in anderen Sprachen zu schreiben. Die meisten Programmierer (einschließlich des Autors) laufen gerne zu ihren Tastaturen, nachdem ihnen „geflüstert“ wurde, wie ein Programm funktioniert.

Dieser Ansatz ist leider fehleranfällig, da die Programmlogik komplizierter wird. Wie möchten Sie Ihr Programmierspiel verbessern, indem Sie lernen, wie man Pseudocode verwendet?

Teilen Teilen Tweet Email Was ist Pseudocode und wie macht es Sie zu einem besseren Entwickler?

Haben Sie Schwierigkeiten, Programmieren zu lernen? Machen Sie sich mit Code vertraut, indem Sie Pseudocode lernen. Aber was ist Pseudocode und kann er wirklich helfen?

Weiter lesen
Verwandte Themen
  • Programmierung
  • Java
  • Python
  • Codierungs-Tutorials
Über den Autor Jerome Davidson(22 Artikel veröffentlicht)

Jerome ist Staff Writer bei MakeUseOf. Er behandelt Artikel über Programmierung und Linux. Er ist auch ein Krypto-Enthusiast und behält die Krypto-Industrie immer im Auge.

Mein Amazon-Paket sagt, dass es geliefert wurde, aber das war es nicht
Mehr von Jerome Davidson

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich zu abonnieren