program BystrayaSortirovka;
{$mode delphi}{$apptype console}
var a: array[0..9] of Integer = (5, 2, 9, 1, 7, 3, 8, 4, 6, 0);
procedure QSort(var arr: array of Integer; lo, hi: Integer);
var i, j, p, t: Integer;
begin
  i := lo; j := hi; p := arr[(lo + hi) div 2];
  repeat
    while arr[i] < p do Inc(i);
    while arr[j] > p do Dec(j);
    if i <= j then begin
      t := arr[i]; arr[i] := arr[j]; arr[j] := t;
      Inc(i); Dec(j);
    end;
  until i > j;
  if lo < j then QSort(arr, lo, j);
  if i < hi then QSort(arr, i, hi);
end;
var k: Integer;
begin
  QSort(a, 0, High(a));
  for k := 0 to High(a) do Write(a[k], ' ');
  WriteLn;
  ReadLn;
end.
