Pagini recente » Cod sursa (job #2873607) | Cod sursa (job #3160371) | Cod sursa (job #2291322) | Cod sursa (job #2924478) | Cod sursa (job #697303)
Cod sursa(job #697303)
program sss;
type vect=array[1..50000] of longint;
var f,g:text;
n,i:longint;
a:vect;
procedure merge(st,sf,m:longint);
var k,i,j:longint;
b:vect;
begin
i:=st;
j:=m+1;
k:=1;
while (i<=m) and (j<=sf) do
begin
if a[i]<=a[j] then
begin
b[k]:=a[i];
i:=i+1;
end
else
begin
b[k]:=a[j];
j:=j+1;
end;
k:=k+1;
end;
if i<=m then
for j:=i to m do
begin
b[k]:=a[j];
k:=k+1;
end
else
for i:=j to sf do
begin
b[k]:=a[i];
k:=k+1;
end;
k:=1;
for i:=st to sf do
begin
a[i]:=b[k];
k:=k+1;
end;
end;
procedure sort(st,sf:longint);
var aux,m:longint;
begin
if (sf-st)<=1 then
begin
if a[st]>a[sf] then
begin
aux:=a[st];
a[st]:=a[sf];
a[sf]:=aux;
end;
end
else
begin
m:=(st+sf) div 2;
sort(st,m);
sort(m+1,sf);
merge(st,sf,m);
end;
end;
begin
assign(f,'algsort.in'); reset(f);
assign(g,'algsort.out'); rewrite(g);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
sort(1,n);
for i:=1 to n do
write(g,a[i],' ');
close(f);
close(g);
end.