Einzelnen Beitrag anzeigen

Starstruck

Registriert seit: 6. Apr 2009
Ort: Hessen
21 Beiträge
 
#25

Re: Listbox nach Datum sortieren

  Alt 24. Jun 2009, 19:22
Ich habe in einem Delphi Buch eine Shell Sort Sortier Routine gefunden und auf Luckies Beispiel angepasst. Das Ganze sieht dann so aus:

Delphi-Quellcode:
procedure ShellSort(sl: TStrings);
var
  bis, i, j, k: LongInt;
  h: String;

begin
  bis := sl.Count -1;
  k := bis shr 1;
  while k > 0 do begin
    for i := 0 to bis -k do begin
      j := i;
      while (j >= 0 ) AND (ExtractDateFromString(sl[j]) > ExtractDateFromString(sl[j + k])) do begin
        h := sl[j];
        sl[j] := sl[j + k];
        sl[j + k] := h;
        if j > k then dec(j, k) else j:=0;
      end; // ENDE While (j >= 0 ..
    end; // for i := 0
    k := k shr 1;
  end; // ENDE While
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellSort(Listbox1.Items);
end;
Habs probiert geht um einiges schneller als BubbleSort (< 1 Sec)!
  Mit Zitat antworten Zitat