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