Insertionsort
Nachdem Willi nun bereits zwei Sortierverfahren ausprobiert hat, stellt er fest, dass diese immer ganz schön viele Vergleiche benötigen. Gerade bei Selectionsort war Willi ja gezwungen alle noch nicht sortierten Mistkugeln nach der nächstkleineren zu durchsuchen. Dabei wird schnell offensichtlich, dass das manchmal unnötige Arbeit ist, denn manchmal sind Teile der Mistkugeln ja schon zufälligerweise richtig sortiert und die nächste noch-nicht-sortierte Mistkugel ist schon am richtigen Platz.
Willi überlegt sich daher eine entgegengesetzte Strategie: anstatt die nächstgrößte Mistkugel auszuwählen (Selectionsort) möchte er jetzt die nächste benachbarte Kugel an die richtige Stelle innerhalb der bereits sortierten Mistkugelreihe einfügen (Insertionsort). Willi stellt also sicher, dass der rechte Bereich seiner Mistkugelreihe mit jedem Schritt eins größer wird und in sich sortiert bleibt.
Schritt für Schritt
(A1)
(A2)
Wie viele Vergleiche müssen im schlimmsten Fall durchgeführt werden? Gibt es auch einen Fall, bei dem die Kugeln so liegen, dass man viel weniger Vergleiche durchführen muss? Wie viel sind es dann im besten Fall?