Problemstellung: Sortieren

Beispiel: Eine Liste mit Personen

Die Liste beinhaltet Elemente (Items), ein Element entspricht einer Zeile, sie soll sortiert werden nach einem (Sortier-)Schlüssel (Key). In diesem Fall soll der Sortierschlüssel der Nachname sein.

Die Liste ist dann sortiert, wenn die Elemente anhand des Sortierschlüssels in eine Reihenfolge gebracht worden sind.

Für verschiedene Schlüssel ergeben sich andere Reihenfolgen der Elemente:

Ziel: Wir wollen alles mögliche Sortieren

Beispiel 1:

Eine Liste zufälliger reeller Zahlen soll sortiert werden1) Hört sich erst mal sinnlos an, eine Anwendung kommt später… :

Beispiel 2:

Eine Wort-Liste soll sortiert werden:

Beispiel 3:

Die Dateien in einem Verzeichnis sollen nach ihrem Namen sortiert werden:

Gemeinsamkeiten

In allen Beispielen wurde ein Array mit der (noch zu implementierenden) Methode Insertion.sort(array) sortiert. Dabei hatten sowohl Array-Elemente als auch die Sortierschlüssel verschiedenste Typen – was für den Aufruf der Methode jedoch unerheblich war: Die Methode erhält als Argument das Array und sortiert es. Der Vorgang des Sortierens war vom Typ des Schlüssels, nach dem sortiert werden sollte ist vollkommen abstrahiert – die sort() Methode hat immer funktioniert.

Callbacks und Interfaces