Registriert seit: 6. Apr 2005
10.109 Beiträge
|
Re: Sortierung unwirksam
15. Sep 2007, 15:33
Hallo Michael,
welchen Algorithmus implementierst du da?
Ich habe mal den hier genommen:
Delphi-Quellcode:
function Compare(item1, item2: TList): Integer;
begin
Result := Math.CompareValue(item1.Count, item2.Count);
end;
procedure Exchange( var a: TCombis; index1, index2: Integer);
var
tmp: TList;
begin
tmp := a[index1];
a[index1] := a[index2];
a[index2] := tmp;
end;
procedure QuickSort( var a: TCombis; iLow, iHigh: Integer);
var
iL, iH: Integer;
pivot: TList;
begin
iL := iLow;
iH := iHigh;
pivot := a[(iLow + iHigh) shr 1];
while iL <= iH do
begin
while Compare(a[ iL], pivot) < 0 do Inc( iL);
while Compare(a[iH], pivot) > 0 do Dec(iH);
if iL <= iH then
begin
Exchange(a, iL, iH);
Inc( iL);
Dec(iH);
end;
end;
if iLow < iH then QuickSort(a, iLow, iH);
if iL < iHigh then QuickSort(a, iL, iHigh);
end;
Funktioniert. Vielleicht findest du deinen Fehler durch Vergleich - oder du schreibst dir eine Visualisierung.
Grüße vom marabu
|
|
Zitat
|