Cod sursa(job #408504)

Utilizator saodem74hieu tran saodem74 Data 3 martie 2010 05:04:33
Problema Sortare prin comparare Scor 80
Compilator fpc Status done
Runda Arhiva educationala Marime 0.69 kb
const tfi='algsort.in';
  tfo='algsort.out';
  maxn=500500;
var fi,fo:text;
  n:longint;
  i:longint;
  a:array[0..maxn] of longint;
procedure sort(l,r:longint);
var i,j,mid,tg:longint;
begin
  if l>=r then exit;
  i:=l;j:=r;
  mid:=a[l+random(r-l+1)];
  repeat
    while a[i]<mid do inc(i);
    while a[j]>mid do dec(j);
    if i<=j then
     begin
      tg:=a[i];a[i]:=a[j]; a[j]:=tg;
      inc(i);dec(j);
     end;
  until i>j;
  sort(i,r);
  sort(l,j);
end;

begin
  assign(fi,tfi);reset(fi);
  assign(Fo,tfo); rewrite(fo);
  randomize;
  read(fi,n);
  for i:=1 to n do read(fi,a[i]);
  sort(1,n);
  for i:=1 to n do write(fo,a[i],' ');
  close(fi); close(fo);
end.