Für die Entwicklung von Sortierverfahren spielt die Komplexität der Daten keine zentrale Rolle. Wir gehen daher im Folgenden von einfachen Daten (hier Zahlen) aus.
Wenn ein Mensch diese Zahlen der Größe nach ordnet, dann geht er/sie in der Regel intelligent vor. Auf einen Blick erkennt er/sie bereits Auffälligkeiten und berücksichtigt diese bei der Vorgehensweise.
Ein Computer hat (in der Regel) keinen Überblick über alle Daten. Er kann zudem (in der Regel) nicht so intelligent wie ein Mensch agieren. Wir werden das jetzt berücksichtigen, indem wir versuchen, mit eingschränkten Möglichkeiten wie ein Computer vorzugehen.
Wir gehen davon aus, dass eine Folge von Zahlen auf Karteikarten notiert ist - jede Zahl auf einer eigenen Karte. Um die Arbeitsweise eines Computers zu simulieren, legen wir Regeln fest, die beim Sortieren beachtet werden müssen. Zunächst einmal werden alle Karten umgedreht. Der "Sortierer" hat keine Gesamtsicht auf alle Daten.
Folgende Operationen darf der "Sortierer" jetzt ausführen:
Regel 1: Maximal 2 Karten umdrehen:
Regel 2: 2 Karten vergleichen und in Abhängigkeit des Ergebnisses weiteragieren:
Regel 3: Eine Karte markieren (es dürfen auch mehrere unterscheidbare Marken benutzt weren):
Regel 4: Eine Karte an eine andere Stelle verschieben:
Regel 5: Karten austauschen (d.h. zwei Karten geeignet verschieben):
Weitere sinnvolle Regeln kannst du nach Bedarf einführen.
- Versuche, mit den vorgegebenen Operationen die gegebene Datenliste sortiert anzuordnen.
- Formuliere das Verfahren, das du zum Sortieren benutzt hast. In einem ersten Schritt kannst du das umgangssprachlich tun. Versuche anschließend, das Verfahren mit einem Struktogramm oder in Pseudocode algorithmisch zu beschreiben.