Thema: Delphi problem mit quicksort

Einzelnen Beitrag anzeigen

ch4mp1on

Registriert seit: 20. Feb 2006
3 Beiträge
 
#1

problem mit quicksort

  Alt 20. Feb 2006, 20:59
Hallo,

also ich bin grad dabei den quicksort zu programmieren. Hab schon einige Beispiele im i-net zu hilfe genommen und allerhand ausprobiert, aber irgendwie krieg ich den nicht ans laufen.
Ich hab immer einen stack overflow, aber die Abbruchbedingung müßte eigentlich stimmen.


Delphi-Quellcode:
procedure TfrmRahmen.quicksort(var Zahlenliste:TZahlenliste; var unterePos:integer; var oberePos:integer);
var
  Pivot, links, rechts, temp:integer;
begin
  Pivot:=Zahlenliste[anzahl div 2];
  links:=unterePos;
  rechts:=oberePos;

  While (links < rechts) do
    begin
      While (Zahlenliste[links]<Pivot) do links:=links+1;
      While (Zahlenliste[rechts]>Pivot) do rechts:=rechts-1; // wandern
      If (links < rechts-1) then
        begin
          temp:=Zahlenliste[links];
          Zahlenliste[links]:=Zahlenliste[rechts]; // tauschen
          Zahlenliste[rechts]:=temp;
          links:=links+1;
          rechts:=rechts-1;
        end;
    end; // while

    If unterePos<rechts then quicksort(Zahlenliste,unterePos,rechts);
    If links<oberePos then quicksort(Zahlenliste,links,oberePos);

end; { Quicksort }
  Mit Zitat antworten Zitat