const
 dofiga=10000;
var
 carray : array[1..dofiga] of real;
 i2,num,range : integer;
procedure quick(low : integer; hi : integer);
  var
   barrier,aux : real;
   i,j : integer;
  begin
        if (hi>low) then
	   begin i:=low;
	     j:=hi;
	     barrier:=carray[random(hi-low)+low];
             while(i < j) do
              begin
               if (carray[i+1]<=barrier) then
                begin  carray[i]:=carray[i+1];
                   carray[i+1]:=barrier;
                   i:=i+1;
                end
                else
                begin  if (carray[j]<barrier) then
                   begin  aux:=carray[j];
                      carray[j]:=carray[i+1];
                      carray[i+1]:=aux;
                    end;
                   j:=j-1;
                end;
             end;
             quick(low,i-1);
             quick(i+1,hi);
           end;
end;
begin
 WriteLn('Сколько элеметов сортировать  и в каком диапазоне?');
 ReadLn(num,range);
 randomize;
 for i2:=1 to num do
  begin
   carray[i2]:=random(range);
   Write('   ',carray[i2]:0:0);
  end;
quick(1,num);
WriteLn;
for i2:=1 to num do
 Write('   ',carray[i2]:0:0);
ReadLn;
end.