Pagini recente » Cod sursa (job #517724) | Cod sursa (job #1765724) | Cod sursa (job #1148742) | Cod sursa (job #949693) | Cod sursa (job #1207877)
program compar;
type
tabel=array [1..500001] of longint;
var
v,c:tabel;
n,m,i,j,k:longint;
f1,f2: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 (f1,'algsort.in');
assign (f2,'algsort.out');
reset (f1);
rewrite (f2);
readln (f1,n);
for i:=1 to n do
read (f1,v[i]);
mergesort(1,n);
for i:=1 to n do
write (f2,v[i],' ');
close (f1);
close (f2);
end.