faecher:informatik:oberstufe:algorithmen:sorting:insertionsort:start

Dies ist eine alte Version des Dokuments!


Insertion Sort

Während Selection Sort jeweils alle noch nicht bearbeiteten Elemente betrachtet hat, um das kleinste zu finden, orientiert sich Insertion Sort nach links: Es betrachtet jeweils ein Element und rückt dieses dann so weit nach links, bis es an seiner korrekten Position innerhalb der bislang betrachteten Elemente gelandet ist.

Für die Zeichenkette „ZEBRASSINDGELB“ sieht das dann folgendermaßen aus:


(A1)

  • Implementiere im Bluej-Projekt https://codeberg.org/qg-info-unterricht/algs4-sort-bluej Selectionsort.
  • Erzeuge mithilfe der draw-Methode eine Veranschaulichung des Sortiervorgangs wie im Bild oben. Du musst dazu die etwas angepasste Methode drawInsertion nutzen, um die Färbung für Insertionsort korrekt zu erzeugen.

(A2)

Wenn alle Elemente der zu sortierenden Liste denselben Sortier-Schlüssel haben (die zu sortierende Liste also z. B. nur aus "aaaaaaa" besteht), welches Verfahren ist dann effizienter: Insertion-Sort oder Selection-Sort? Begründe deine Antwort!

Tipp


(A3)

Ein Sortieralgorithmus ist stabil, wenn er die ursprüngliche Reihenfolge von Elementen mit gleichem Schlüsselwert beibehält.

Das bedeutet, wenn zwei Elemente den gleichen Sortierschlüssel haben, bleibt ihre relative Position zueinander nach dem Sortieren unverändert.

Diese Eigenschaft ist besonders wichtig, wenn:

  • Datensätze nach mehreren Kriterien sortiert werden sollen
  • Die ursprüngliche Reihenfolge eine semantische Bedeutung hat

Als Beispiel: Wenn wir eine Liste von Personen erst nach Alter und dann nach Namen sortieren, ist es oft wichtig, dass die ursprüngliche Reihenfolge bei gleichaltrigen Personen erhalten bleibt.

Ein Gegenbeispiel ist der Selectionsort-Algorithmus, der nicht stabil ist, da beim Vertauschen von Elementen im unsortierten Bereich die ursprüngliche Reihenfolge von Elementen mit gleichem Wert verändert werden kann

  • faecher/informatik/oberstufe/algorithmen/sorting/insertionsort/start.1738828957.txt.gz
  • Zuletzt geändert: 06.02.2025 08:02
  • von Frank Schiebel