Also:
Der Anwender wählt aus, wonach er sortieren möchte. Belassen wir es bei der Auswahl 'Vorname', 'Nachname', 'Strasse'.
Wir merken uns in einer Variablen ('Sortierkriterium'), was der Anwender möchte. Dabei bedeutet '0', das er nach dem Vornamen sortieren will, 1 das er nach dem Nachnamen sorieren will und 2, das er nach der Strasse sortieren will.
Die Funktion sieht z.B. so aus:
Delphi-Quellcode:
Function Vergleiche (Const a, b : TAdresse) : Shortint;
Begin
case SortierKriterium of
0 :
If a.Vorname < b.Vorname Then
Result := -1
else If a.Vorname > b.Vorname then
Result := +1
else
Result := 0;
1 :
If a.Name < b.Name Then
Result := -1
else If a.Name > b.Name then
Result := +1
else
Result := 0;
2 :
If a.Strasse < b.Strasse Then
Result := -1
else If a.Strasse > b.Strasse then
Result := +1
else
Result := 0;
End;
End;
So, diese Funktion verwendest Du in deinem Quicksort-Algorithmus. Probiere ruhig ein wenig.