Thema: Delphi QuickSort spinnt

Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

Re: QuickSort spinnt

  Alt 10. Dez 2007, 13:06
Zitat von Opa:
Nachfolgen Sortier Routine benutze ich, geht auch sehr gut, aber nur wenn nicht mehr als zwei mal der gleiche Name, bez. Dateilänge auftritt. Ich wollte nicht unbedingt auf Bubbelsort zurückgreifen. Ich kann keinen Fehler erkennen.

Code:
procedure _QuickSort(AHandle:THandle;TL:TList;Index:integer;SortStyle:TCustomSortStyle;SortOrder:boolean);
var
  S1, S2    : string;
  I1,I2     : int64;
...
        M:=(L + R) shr 1;
        repeat
          while Verg(I,M) < 0  do inc(I);
          while Verg(J,M) > 0  do dec(J);
          if I <= J then
          begin
            _PListSwap(Liste,I,J);
            {m muss weiter auf Pivot zeigen} {*}
            if i=m then m:=j                {*}
            else if j=m then m:=i;          {*}
            inc(I);
            dec(J);
          end;
...
Spinnt's auch dann noch wenn Du nach _PListSwap die mit {*} markierten Zeilen einfügst? Hat mich in einer ähnlichen Situation vor Jahren auch zur Verzweiflung gebracht.

Gruß Gammatester
  Mit Zitat antworten Zitat