Cod sursa(job #404366)

Utilizator mimarcelMoldovan Marcel mimarcel Data 26 februarie 2010 08:20:11
Problema Sortare prin comparare Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.81 kb
const maxn=500000;
type vector=array[1..maxn]of longint;
var n,i:longint;
    v:vector;


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 write(v[i],' ');
close(output);
close(input);
end.