Hier noch mal die aktuelle Version des Quellcodes. Es gibt immernoch das gleiche Problem: Damit die Liste komplett sortiert ist, muss ich das Sortierverfahren mehrmals anwenden. Vielleicht hat ja jemand noch ein paar Tipps.
Delphi-Quellcode:
procedure TForm1.Sortierverfahren4Click(Sender: TObject);
var
n:integer;
timer_s_ts,timer_e_ts:ttimestamp;
procedure Quicksort(links,rechts:integer);
var
el,er,grenze: integer;
hilfe:string;
begin
el:=links; er:=rechts; grenze:=strtoint(ListeSortiert.Items.Strings[links]);
repeat
while strtoint(ListeSortiert.Items.Strings[el])<grenze do el:=el+1;
while strtoint(ListeSortiert.Items.Strings[er])>grenze do er:=er-1;
if(el <= er) then begin
hilfe:=ListeSortiert.Items.Strings[el];
ListeSortiert.Items.Strings[el]:=ListeSortiert.Items.Strings[er];
ListeSortiert.Items.Strings[er]:=hilfe;
end;
el:=el+1;
er:=er-1;
until el>=er;
if (er > links) then QuickSort(links,er);
if (el < rechts) then QuickSort(el,rechts);
end;
begin
timer_s_ts:=DateTimeToTimeStamp(now());
Write;
n:=ListeSortiert.Items.Count-1;
Quicksort(0,n);
timer_e_ts:=DateTimeToTimeStamp(now());
GebrauchteZeit.Text:=inttostr((timer_e_ts.Date*24*60*60*1000+timer_e_ts.Time)-(timer_s_ts.Date*24*60*60*1000+timer_s_ts.Time));
end;