Thema: Delphi Sortierung unwirksam

Einzelnen Beitrag anzeigen

marabu

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

Re: Sortierung unwirksam

  Alt 15. Sep 2007, 17:51
Hi,

Zitat von Neutral General:
... Hab mich hieran ... orientiert. ...
ich komme zu folgendem Ergebnis, wenn ich den Wikipedia-Algorithmus implementiere - ich habe versucht so viel wie möglich von deinem Code beizubehalten:

Delphi-Quellcode:
procedure SortArray(var CombiArray: TCombis; l, r: Integer);

  function Divide(l, r: Integer): Integer;

    procedure Exchange(s,t: Integer);
    var tmp: TList;
    begin
      tmp := CombiArray[s];
      CombiArray[s] := CombiArray[t];
      CombiArray[t] := tmp;
    end;

  var
    pivot: Integer;
  begin
    // Dec(l); // muss wech!
    pivot := r;
    while l < r do
    begin
      while CombiArray[l].Count < CombiArray[pivot].Count do
        Inc(l);
      while (l < r) and (CombiArray[r].Count > CombiArray[pivot].Count) do
        Dec(r);
      if l < r then
        Exchange(l, r);
    end;
    Exchange(l, pivot);
    Result := l;
  end;
Du hast dich offensichtlich von der visuellen Ähnlichkeit des Pseudo-Codes "wiederhole block solange bedingung" mit einer REPEAT-Schleife täuschen lassen. Tatsächlich ist es aber eine WHILE-Schleife.

Freundliche Grüße
  Mit Zitat antworten Zitat