Einzelnen Beitrag anzeigen

Helios

Registriert seit: 4. Apr 2003
7 Beiträge
 
#13
  Alt 5. Apr 2003, 10:55
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;
  Mit Zitat antworten Zitat