Insertion Sort

Beginner Algorithmen und Datenstrukturen Deutsch
Also available: English
Created by Best · 16.08.2026 at 09:13 UTC

Insertion Sort baut eine sortierte Präfix auf und fügt das nächste Element an der richtigen Stelle ein (Verschieben).

Best case bei schon sortierten Daten: $O(n)$. Worst case $O(n^{2})$. Stabil und gut für kleine oder fast sortierte Arrays.

Eingabeform Verschiebungen (qualitativ)
bereits sortiert wenige
umgekehrt sortiert viele
## Wo gebraucht

Fast sortierte Daten, kleine n, innere Schleife von Hybrid-Sortierern (TimSort nutzt Insertions auf Runs). Deshalb bleibt Insertion praktisch relevant.

Vertiefung

Insertion Sort hält einen bereits sortierten Präfix. Das nächste Element wird zwischengespeichert, grössere Präfixelemente werden nach rechts verschoben, und die entstandene Lücke nimmt das Element auf. Nach jeder Runde ist der Präfix um eine Position gewachsen und weiterhin sortiert.

Die Arbeit entspricht eng der Zahl inverser Paare, also der Paare, die relativ zur Zielordnung vertauscht stehen. Fast sortierte Daten erzeugen deshalb wenige Verschiebungen. Stark umgekehrte Ordnung führt dagegen zu einer langen Verschiebekette pro Runde.

Schwierigkeitsstufen

  1. Ein Element in einen sortierten Präfix einfügen.
  2. Verschiebungen mit der Zahl der Inversionen verbinden.
  3. Die Stabilität durch die genaue Vergleichsbedingung erhalten.

Fallstricke

Wird bei Gleichheit ebenfalls verschoben, kann sich die Reihenfolge gleichwertiger Datensätze ändern. Häufig geht auch das zwischengespeicherte Element verloren, wenn direkt im Array überschrieben wird.

University approvals: 0
Tasks
Question 1

Best-Case-Laufzeit von Insertion Sort:

Question 2

Welche Eingabeeigenschaft reduziert die Zahl der Verschiebungen bei Insertion Sort?

Question 3

Implementiere Insertion Sort aufsteigend.

Hint

Eine while-Schleife kann den Index rückwärts bewegen. Arrayelemente werden durch Zuweisung an a[index] verschoben.

Starter code is prefilled; replace TODO blocks with your solution.
1 test case will be used for grading
Run checks runtime behavior only. Final correctness is evaluated when you submit.
Card Info
  • Topic: Algorithmen und Datenstrukturen
  • Difficulty: Beginner
  • Completed: 0 users
Creator
Best
Best
BestBuddy