{ Funktion: Quick-Sort, sortieren ...
  Autor   : DG1XPZ
  Sprache : Turbo Pascal 7.0}
program insert;

type zahlenArray = array[0..9] of integer;
const  a: zahlenArray=(9,5,8,6,3,7,4,0,1,2);

var m,n:integer;

procedure sort(l,r:integer);
var v,t,i,j: Integer;
begin
  if r>l then
  begin
    v:=a[r];i:=l-1;j:=r;
    repeat
      repeat i:=i+1 until a[i]>=v;
      repeat j:=j-1 until a[j]<=v;
      t:=a[i]; a[i]:=a[j]; a[j]:=t;
    until j<=i;
    a[j]:=a[i]; a[i]:=a[r]; a[r]:=t;
    sort(l,i-1);
    sort(i+1,r);
  end;
end;

procedure ausgabe(z: zahlenArray);
var
  i: Integer;
begin
  for i:=0 to (SizeOf(z) div SizeOf(z[0]))-1 do
  begin
    write(z[i]);
    write(',');
  end;
  write('\b \n');
end;

begin
  writeln('Sortieren mit Quick-Sort.');
  sort(0,9);
  writeln('Sortiert:');
  ausgabe(a);
end.

