Cod sursa(job #241524)

Utilizator qSortMorariu Razvan qSort Data 10 ianuarie 2009 12:30:44
Problema Sortare prin comparare Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 0.71 kb
program algsort;
type vector=array[1..500009] of longint;
var a:vector;
		i,k:integer;
		f,g:text;

procedure qsort(var v:vector; p,n:longint);
var st,dr,aux,m:longint;
begin
st:=p;
dr:=n;
m:=v[(p+n) div 2];
repeat
	while v[st]<m do st:=st+1;
	while v[dr]>m do dr:=dr-1;
		if st<=dr then begin
										aux:=v[st];
										v[st]:=v[dr];
										v[dr]:=aux;
										st:=st+1;
										dr:=dr-1;
										end;
until st>dr;
if p<dr then qsort(v,p,dr);
if st>n then qsort(v,st,n);

end;


begin
assign(f,'algsort.in'); reset(f);
assign(g,'algsort.out'); rewrite(g);
read(f,k);
for i:=1 to k do
	read(f,a[i]);
qsort(a,1,k);
for i:=1 to k do
	write(g,a[i],' ');
close(f); close(g);
end.