Pagini recente » Cod sursa (job #1844881) | Cod sursa (job #1293164) | Cod sursa (job #1575877) | Cod sursa (job #955574) | Cod sursa (job #1384267)
program sortare_prin_comparare;
type tabel=array [1..500001] of longint;
var v,c:tabel;
n,m,i,j,k:longint;
f,g:text;
procedure interclaseaza(s,m,d:longint);
var k,i,j:longint;
begin
i:=s;j:=m+1;k:=0;
while (i<=m)and(j<=d) do
if v[i]<v[j] then
begin
inc(k);c[k]:=v[i];inc(i);
end
else
begin
inc(k);c[k]:=v[j];inc(j);
end;
while (i<=m) do
begin
inc(k);c[k]:=v[i];inc(i);
end;
while (j<=d) do
begin
inc(k);c[k]:=v[j];inc(j);
end;
k:=0;
for i:=s to d do
begin
inc(k);
v[i]:=c[k];
end;
end;
procedure mergesort(s,d:longint);
var m:longint;
begin
if s<d then
begin
m:=(s+d) div 2;
mergesort(s,m);
mergesort(m+1,d);
interclaseaza(s,m,d);
end;
end;
begin
assign(g,'algsort.in'); assign(g,'algsort.out');
reset(f); rewrite(g);
readln(f,n);
for i:=1 to n do
read(f,v[i]);
mergesort(1,n);
for i:=1 to n do
write(g,v[i],' ');
close(f); close(g);
end.