Thema: Delphi Sortierung unwirksam

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Sortierung unwirksam

  Alt 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
  Mit Zitat antworten Zitat