Pagini recente » Cod sursa (job #717031) | Cod sursa (job #2880011) | Cod sursa (job #626990) | Cod sursa (job #1240953) | Cod sursa (job #404368)
Cod sursa(job #404368)
const maxn=500000;
type vector=array[1..maxn]of longint;
string10=string[10];
var n,i:longint;
v:vector;
s:string10;
procedure interschimba(var a,b:longint);
begin
a:=a xor b;
b:=b xor a;
a:=a xor b;
end;
procedure quicksort(var v:vector;p,q:longint);
var a,b,m:longint;
begin
a:=p;
b:=q;
m:=v[(a+b)shr 1];
repeat
while v[a]<m do inc(a);
while v[b]>m do dec(b);
if a<=b then begin
if a<>b then interschimba(v[a],v[b]);
inc(a);
dec(b);
end
else break;
until a>b;
if a<q then quicksort(v,a,q);
if p<b then quicksort(v,p,b);
end;
begin
assign(input,'algsort.in');
reset(input);
assign(output,'algsort.out');
rewrite(output);
readln(n);
for i:=1 to n do read(v[i]);
quicksort(v,1,n);
for i:=1 to n do begin
str(v[i],s);
write(s+' ');
end;
close(output);
close(input);
end.