Einzelnen Beitrag anzeigen

DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#2

Re: quicksort hängt sich auf

  Alt 14. Okt 2008, 22:58
Dann schau Dir mal den Source in der Delphi VCL an:

z.b. ListAcnts.pas (muesste auch bei Delphi 5 im Verzeichnis ..Source\Vcl liegen

Hier ein kleiner Auschnitt:

Delphi-Quellcode:
procedure TListControlItems.QuickSort(L, R: Integer; SCompare: TListItemsCompare);
var
  I, J, P: Integer;
begin
  repeat
    I := L;
    J := R;
    P := (L + R) shr 1;
    repeat
      while SCompare(Self, I, P) < 0 do Inc(I);
      while SCompare(Self, J, P) > 0 do Dec(J);
      if I <= J then
      begin
        ExchangeItems(I, J);
        if P = I then
          P := J
        else if P = J then
          P := I;
        Inc(I);
        Dec(J);
      end;
    until I > J;
    if L < J then QuickSort(L, J, SCompare);
    L := I;
  until I >= R;
end;
Dann wirst du deinen Algo auch lauffähig kriegen.

mfg
Delphideveloper
  Mit Zitat antworten Zitat