Pagini recente » Cod sursa (job #3123881) | Cod sursa (job #429525) | Cod sursa (job #3267418) | Cod sursa (job #360773) | Cod sursa (job #1042000)
var v:array[1..500005] of longint;
n,i:longint;
f,g:text;
function sort2(min,max:longint):longint;
var piv,aux,i,j:longint;
k:boolean;
begin
piv:=v[min+random(max-min+1)];
i:=min-1;
j:=max+1;
k:=false;
repeat
repeat
inc(i);
until v[i]>=piv;
repeat
dec(j);
until v[j]<=piv;
if i<j then
begin
aux:=v[i];
v[i]:=v[j];
v[j]:=aux;
end
else
begin
k:=true;
sort2:=j;
end;
until k;
end;
procedure sort(min,max:longint);
var p:longint;
begin
if min<max then
begin
p:=sort2(min,max);
sort(min,p);
sort(p+1,max);
end;
end;
begin
assign(f,'algsort.in');
assign(g,'algsort.out');
reset(f);rewrite(g);
read(f,n);
for i:=1 to n do
read(f,v[i]);
sort(1,n);
for i:=1 to n do
write(g,v[i],' ');
close(f);close(g);
end.