Cod sursa(job #543777)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 28 februarie 2011 16:28:39
Problema Sortare prin comparare Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.8 kb
var     a:array[1..500000] of longint;
        n,i:longint;
        f1,f2:text;
        bufin:array[1..1 shl 17] of char;

procedure sw(var a,b:longint);
var     t:longint;
begin
  t:=a;
  a:=b;
  b:=t;
end;

procedure qs(left,right:longint);
var i,j,r:longint;
begin
  i:=left;
  j:=right;
  r:=a[(i+j) div 2];
  while i<j do
    begin
      while a[i]<r do inc(i);
      while a[j]>r do dec(j);
      if i<= j then begin sw(a[i],a[j]); inc(i); dec(j); end;
    end;
  if i<right then qs(i,right);
  if j>left then qs(left,j);
end;

begin
  assign(f1,'algsort.in');
  assign(f2,'algsort.out');
  reset(f1);
  rewrite(f2);
  readln(f1,n);

  for i:=1 to n do
    read(f1,a[i]);

  qs(1,n);

  SetTextBuf(f2,Bufin);
  for i:=1 to n do
    write(f2,a[i],' ');
  close(f2);
end.