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]