Moin!
Im Zuge meiner Prüfungsvorbereitung implementier ich grad allerlei Soriteralgorithmen... Und bin jetze bei Mergesort mal wieder auf das Problem gestoßen, dass ich eigentlich eine Liste als Rückgabetyp brauche - das gehört ja aber zu den Dingen, die man hier neben gotos u.Ä. als böse eingetrichtert bekommt
Der Code ist in etwa so:
Delphi-Quellcode:
class method MergeSort.MergeSort<T>(aList: List<T>; aComparison: TComparison<T>): List<T>;
var
Left, Right: List<T>;
begin
if aList.Count >= 1 then begin
Left := aList.GetRange(0, aList.Count / 2);
Right := aList.GetRange(aList.Count / 2, aList.Count / 2);
Result := Merge<T>(MergeSort<T>(Left, aComparison), MergeSort<T>(Right, aComparison), aComparison);
end;
end;
So, die Frage ist jetzt: wie macht mans denn nun richtig (bei der Merge-Funktion ergibt sich ja selbiges Problem)?