Cod sursa(job #869847)

Utilizator cioionutFMI Ionut Ciocoiu cioionut Data 2 februarie 2013 14:01:28
Problema Sortare prin comparare Scor 80
Compilator fpc Status done
Runda Arhiva educationala Marime 0.74 kb
type vect=array[1..500000] of longint;
     indice=1..500000;
var x:vect;i,n:indice; t,g:text;

procedure quick(var x:vect;p,u:indice);
var min,max:indice;m,a:longint;
begin
min:=p;
max:=u;
m:=x[(p+u)div 2];
while (min<=max) do
begin
while(x[min]<m) do inc(min);
while(x[max]>m) do dec(max);
if min<=max then begin
                 a:=x[min];
                 x[min]:=x[max];
                 x[max]:=a;
                 inc(min);dec(max);
                 end;
end;
if p<max then quick(x,p,max);
if min<u then quick(x,min,u);
end;
begin
assign(t,'algsort.in');reset(t);
assign(g,'algsort.out');rewrite(g);
readln(t,n);
for i:=1 to n do read(t,x[i]);
quick(x,1,n);
for i:=1 to n do write(g,x[i],' ');
close(t);close(g);
end.