NN ist 1000, High aber 10000. -> Quick_Sort(A, 1, NN)
Und, ob dein Quicksort so richtig ist, kann ich nicht sagen, ich verwende immer den analog TList:
Delphi-Quellcode:
procedure QuickSort(L, R: Integer;
var Items:
array of Integer);
var
I, J, K, Pivot, Temp: Integer;
begin
repeat
I := L;
J := R;
K := (L + R)
shr 1;
Pivot := Items[K];
repeat
while Items[I] < Pivot
do
Inc(I);
while Items[J] > Pivot
do
Dec(J);
if I <= J
then
begin
Temp := Items[I];
Items[I] := Items[J];
Items[J] := Temp;
Inc(I);
Dec(J);
end;
until I > J;
if L < J
then
QuickSort(L, J, Items);
L := I;
until I >= R;
end;
procedure Sort(
var Items:
array of Integer;
const L, R: Integer);
begin
QuickSort(L, R, Items);
end;