Cod sursa(job #241762)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 10 ianuarie 2009 22:17:36
Problema Sortare prin comparare Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.69 kb
var a:array[1..500000] of longint;
aux,i,n:longint;
f,g:text;
procedure divid(st,dr:longint);
var p,i,j:longint;
begin
i:=st;
j:=dr;
p:=a[(st+dr)div 2];
while (i<=j) do
   begin
     while (a[i]<p) do i:=i+1;
     while (a[j]>p) do j:=j-1;
     if i<=j then begin
             aux:=a[i];
             a[i]:=a[j];
             a[j]:=aux;
             i:=i+1;
             j:=j-1;
             end;
   end;
   if st<j then divid(st,j);
   if dr>i then divid(i,dr);
end;
begin
assign(f,'algsort.in');
reset(f);
readln(f,n);
for i:=1 to n do
    read(f,a[i]);
close(f);
divid(1,n);
assign(g,'algsort.out');
rewrite(g);
for i:=1 to n do
write(g,a[i],' ');
close(g);
end.