MINT lernen

Übungen: Insertionsort

Zehn Übungen zu Insertionsort — vom einzelnen Einfügeschritt bis zur Frage, wann gleiche Werte ihre Reihenfolge behalten.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Zehn Übungen zum Einfügen, Verschieben und Zählen — von AFB I bis AFB III. Jede Übung gibt sofort Rückmeldung; wenn Sie nicht weiterkommen, helfen die gestuften Tipps.

A1
Stimmt's? — Fünferserie
AFB I

Nennen Sie zu jeder Aussage über Insertionsort, ob sie stimmt.

5 Aussagen nacheinander. Eine falsche Einschätzung reicht — dann starten Sie die Serie mit „Neue Runde“ neu.
Aussage 1 von 5

Insertionsort passt sich den Daten an: Zwischen \(n-1\) (vorsortiert) und \(\frac{n(n-1)}{2}\) Vergleichen (umgekehrt sortiert) ist alles möglich.
Ansatz: Erinnern Sie sich an das Applet: Was passiert mit den größeren Karten?
Weiter: Vorsortiert: pro Element ein Vergleich, der sofort falsch ist.
A2
Ein Einfügeschritt
AFB I

Ein Bastler sortiert Kabellängen (in cm). Nach drei Runden gilt laenge = {12, 27, 35, 51, 30, 8, 44}; die ersten vier Elemente sind sortiert. Wenden Sie die nächste Runde von Insertionsort an.

Wählen Sie in jedem Menü den passenden Eintrag und prüfen Sie dann alle auf einmal.

Zwischenspeicher x in dieser Runde:

Vergleiche in dieser Runde:

Verschiebungen in dieser Runde:

Die Reihung danach:

Verschiebungen in der Runde danach (x = 8):

51 und 35 sind größer als 30 und rücken nach rechts (2 Verschiebungen). Der dritte Vergleich 27 > 30 ist falsch und beendet die Schleife — er zählt trotzdem mit: 3 Vergleiche. In der nächsten Runde ist 8 kleiner als alle fünf sortierten Elemente: 5 Verschiebungen, 5 Vergleiche, danach ist j = -1.
Ansatz: Vergleichen Sie von rechts nach links: 51, dann 35, dann 27 mit 30.
Weiter: Der Vergleich, der die Schleife beendet, wird auch mitgezählt.
A3
Welches Verfahren ist gemeint?
AFB I Mix

Ordnen Sie jede Eigenschaft dem Sortierverfahren zu, auf das sie zutrifft.

Ziehen Sie jede Karte in den passenden Korb — oder wählen Sie sie mit Enter aus und drücken dann die Ziffer des Korbs (0 legt sie zurück).
1nur Selectionsort
2nur Insertionsort
3beide
Beide Verfahren arbeiten in derselben Reihung und bauen links einen sortierten Teil auf. Der Unterschied: Selectionsort wählt aus dem Rest das Minimum (feste Vergleichszahl, wenige Tausche, nicht stabil), Insertionsort fügt das nächste Element ein (datenabhängig, viele Verschiebungen möglich, stabil).
Ansatz: Selectionsort: auswählen und tauschen. Insertionsort: einfügen und verschieben.
Weiter: Zwei Karten beschreiben das gemeinsame Gerüst beider Verfahren.
A4
Tracetabelle ausfüllen
AFB II

Ein Lieferdienst sortiert Lieferzeiten in Minuten: zeit = {38, 14, 52, 9, 27}. Stellen Sie den Ablauf von Insertionsort in der Tracetabelle dar.

Füllen Sie alle Felder aus und prüfen Sie dann. Reihungen mit Leerzeichen oder Kommas trennen, z. B. 1 2 3 4 5. Enter prüft ebenfalls.
ixVerschiebungenVergleichezeit danach
114
252
39
427
Summe: 8 Vergleiche und 6 Verschiebungen. Bei i = 1 und i = 3 wandert x bis ganz nach vorn — dann endet die Schleife über j >= 0, ohne dass ein weiterer Vergleich von Elementen stattfindet. Deshalb ist dort die Zahl der Vergleiche gleich der Zahl der Verschiebungen.
Ansatz: Vergleiche = Verschiebungen + 1, außer wenn x ganz vorn landet.
Weiter: i = 3: x = 9 ist kleiner als 52, 38 und 14 — drei Verschiebungen, drei Vergleiche.
A5
Drei Fehler in der while-Schleife
AFB II

Tom hat Insertionsort programmiert, aber seine Methode liefert falsche Ergebnisse. Analysieren Sie den Code Zeile für Zeile und korrigieren Sie die fehlerhaften Zeilen.

Klicken Sie die fehlerhaften Zeilen an und tragen Sie jeweils die korrigierte Zeile ein. Leerzeichen spielen keine Rolle.
Mit j = i würde x zuerst mit sich selbst verglichen. a[j] < x verschiebt die kleineren Elemente — das sortiert absteigend und zerstört den sortierten Teil. a[j] = a[j + 1] kopiert in die falsche Richtung: Das größere Element soll nach rechts rücken.
Ansatz: Spielen Sie den Code mit a = {4, 2} durch: Welchen Wert hat j beim ersten Vergleich?
Weiter: Richtig ist: Start bei i - 1, Bedingung a[j] > x, Kopie von links nach rechts.
A6
Eine Runde durchspielen
AFB II

Die Reihung r = {5, 11, 16, 23, 13} ist bis Index 3 sortiert. Beschreiben Sie Schritt für Schritt, wie die Java-Methode der Inhaltsseite das Element 13 einfügt.

Spielen Sie den Ablauf Schritt für Schritt durch: Was passiert als Nächstes? Nur die richtige Karte bringt Sie weiter.
    3 Vergleiche, 2 Verschiebungen, eine Schreiboperation für x. Wer „13 mit 23 tauschen“ wählt, denkt an Selectionsort oder Bubblesort — Insertionsort tauscht nicht, sondern schiebt und fügt zum Schluss ein.
    Ansatz: Vor der Schleife: Zwischenspeicher füllen und j auf das Ende des sortierten Teils setzen.
    Weiter: In der Schleife: a[j + 1] ← a[j], dann j ← j − 1.
    A7
    Bester und ungünstigster Fall
    AFB II

    Eine Reihung hat \(n=12\) Elemente. Berechnen Sie die Anzahl der Vergleiche und Verschiebungen im besten und im ungünstigsten Fall.

    Rechnen Sie die Kette Schritt für Schritt: Erst wenn ein Schritt stimmt, wird der nächste freigeschaltet. Enter prüft.
    1. Insertionsort, vorsortiert: Vergleiche
    2. Insertionsort, vorsortiert: Verschiebungen
    3. Insertionsort, umgekehrt sortiert: Vergleiche
    4. Insertionsort, umgekehrt sortiert: Verschiebungen
    5. Selectionsort, vorsortiert: Vergleiche
    Vorsortiert: \(n-1=11\) Vergleiche, nichts rückt. Umgekehrt: das Element mit Index \(i\) wandert ganz nach vorn, \(1+2+\ldots+11=\frac{12\cdot11}{2}=66\) Vergleiche und ebenso viele Verschiebungen. Selectionsort braucht die 66 Vergleiche auch im vorsortierten Fall.
    Ansatz: Vorsortiert: pro Element ein Vergleich. Umgekehrt: Element \(i\) wandert \(i\) Plätze.
    Weiter: \(\frac{n(n-1)}{2}\) mit \(n=12\).
    A8
    Lauter gleiche Werte
    AFB III Trick

    Die Reihung {7, 7, 7, 7, 7, 7, 7, 7} wird mit der Java-Methode der Inhaltsseite sortiert. Bestimmen Sie die Anzahl der Vergleiche von Reihungselementen.

    Rechnen Sie selbst und tragen Sie das Ergebnis ein — Enter prüft direkt.
    Jeder Vergleich 7 > 7 ist falsch — die Schleife endet sofort. Das ist der beste Fall: \(n-1=7\) Vergleiche und 0 Verschiebungen. Mit >= wäre es der ungünstigste Fall (28 Vergleiche, 28 Verschiebungen) — und das Verfahren nicht mehr stabil.
    Ansatz: Ist 7 > 7 wahr oder falsch?
    Weiter: Gleiche Werte verhalten sich wie eine vorsortierte Reihung.
    A9
    Neuer Highscore
    AFB III

    Ein Spiel speichert 1000 Highscores aufsteigend sortiert. Ein neuer Wert wird hinten angehängt; danach wird die ganze Reihung (1001 Elemente) neu sortiert. Beurteilen Sie die Aussagen.

    Mehrere Antworten sind richtig. Markieren Sie alle zutreffenden und klicken Sie dann auf „Prüfen“.
    Insertionsort: 999 Elemente liegen schon richtig (je 1 Vergleich), nur der neue Wert wandert — höchstens 1000 Vergleiche und 1000 Verschiebungen, zusammen höchstens 1999 Vergleiche. Wie viele es sind, hängt vom neuen Wert ab. Selectionsort vergleicht stur \(\frac{1001\cdot1000}{2}=500\,500\)-mal. „Quadratisch“ beschreibt nur den ungünstigsten Fall.
    Ansatz: Rechnen Sie getrennt: die 999 alten Elemente und der eine neue Wert.
    Weiter: Der neue Wert kann höchstens an allen 1000 alten Werten vorbeiwandern.
    A10
    Erst Name, dann Note
    AFB III

    Eine Lehrerin hat ihre Liste bereits alphabetisch geordnet: (Ali, 3) (Ben, 1) (Ella, 3) (Mia, 2) (Noah, 2). Nun sortiert sie mit Insertionsort aufsteigend nach der Note (Vergleich nur der Noten). Ermitteln Sie die Reihenfolge nach dem Sortieren.

    Ziehen Sie die Karten in die richtige Reihenfolge — mit der Tastatur: ↑/↓ verschiebt, Shift+↑/↓ wechselt nur den Fokus.
    1Ben (1)
    2Mia (2)
    3Noah (2)
    4Ali (3)
    5Ella (3)
    Insertionsort ist stabil: Bei gleicher Note bleibt die alphabetische Reihenfolge erhalten — Mia vor Noah, Ali vor Ella. So entsteht in einem zweiten Sortierlauf eine Liste „nach Note, bei Gleichstand nach Name“. Mit Selectionsort wäre das nicht garantiert.
    Ansatz: Welche Namen haben dieselbe Note — und in welcher Reihenfolge standen sie vorher?
    Weiter: Ein stabiles Verfahren ändert die Reihenfolge gleicher Schlüssel nie.