Einzelnen Beitrag anzeigen

grumbeernils

Registriert seit: 10. Sep 2009
12 Beiträge
 
#1

Schreibtischtest quicksort

  Alt 1. Okt 2009, 10:17
Hallo,
wir sollen einen schreibtischtest von dieser implementierung durchführen:
Delphi-Quellcode:
unit UQuickSort;

interface

procedure QuickSort(var A: array of Integer);

implementation

procedure QuickSort(var A: array of Integer);

  procedure QSort(LoIndex, HiIndex: Integer);
  var
    Lo, Hi: Integer;
    Pivot: Integer;
    Swap: Integer;
  begin
    // Wähle stets das mittlere Element als Pivotelement.
    Pivot := A[(LoIndex + HiIndex) div 2];

    // Stelle die Ordnung bzgl. des Pivotelements her.
    Lo := LoIndex;
    Hi := HiIndex;
    repeat
      while A[Lo] < Pivot do Inc(Lo);
      while A[Hi] > Pivot do Dec(Hi);
      if Lo <= Hi then
      begin
        Swap := A[Lo];
        A[Lo] := A[Hi];
        A[Hi] := Swap;
        Inc(Lo);
        Dec(Hi);
      end;
    until Lo > Hi;

    // Gegebenenfalls linke Teilliste sortieren.
    if LoIndex < Hi then QSort(LoIndex, Hi);

    // Gegebenenfalls rechte Teilliste sortieren.
    if Lo < HiIndex then QSort(Lo, HiIndex);
  end;

begin
  QSort(Low(A), High(A));
end;

end.
die zahlen mit denen wir das durchführen sollen sind: A [ 17,5,2,11,1 ]
wie soll das funktionieren?

gruß

[edit=Sharky]Delphi-Tags eingefügt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat