Pagini recente » Cod sursa (job #74857) | Cod sursa (job #3038322) | Cod sursa (job #948338) | Cod sursa (job #266342) | Cod sursa (job #579415)
Cod sursa(job #579415)
program heapsort;
const fi='algsort.in';
fo='algsort.out';
var f,g:text;
v:array[1..500000] of longint;
bufin,bufout:array[1..65000] of byte;
i,n:longint;
function pivot(st,dr:longint):longint;
var d,r,di,aux,p1:longint;
begin
p1:=v[st];
d:=st+1;
r:=dr;
while d<=r do
begin
while (d<=dr)and(v[d]<p1) do
inc(d);
while (r>st)and(v[r]>=p1) do
dec(r);
if d<r then
begin
aux:=v[d];
v[d]:=v[r];
v[r]:=aux;
end;
end;
aux:=v[st];
v[st]:=v[r];
v[r]:=aux;
pivot:=r;
end;
procedure qsort(st,dr:longint);
var p:longint;
begin
if st<dr then
begin
p:=pivot(st,dr);
qsort(st,p-1);
qsort(p+1,dr);
end;
end;
begin
assign(f,fi);
reset(f);
assign(g,fo);
rewrite(g);
settextbuf(f,bufin);
settextbuf(g,bufout);
read(f,n);
for i:=1 to n do
begin
read(f,v[i]);
end;
qsort(1,n);
for i:=1 to n do
write(g,v[i],' ');
close(f);
close(g);
end.