Pagini recente » Cod sursa (job #1236295) | Cod sursa (job #2163712) | Cod sursa (job #2440791) | Cod sursa (job #1045105) | Cod sursa (job #930555)
Cod sursa(job #930555)
var f,g:text;
v:array[-1..500000] of longint;
n,i,j,x:longint;
bufin,bufout:array[1..65000] of byte;
function pivot(st,dr:longint):longint;
var aux,i,j,m:longint;
begin
m:=st+random(dr-st)+1;
aux:=v[st]; v[st]:=v[m]; v[m]:=aux;
i:=0;
j:=1;
while st<dr do begin
if v[st]>v[dr] then begin
aux:=v[st];
v[st]:=v[dr];
v[dr]:=aux;
aux:=i;
i:=j;
j:=aux;
end;
st:=st+i;
dr:=dr-j;
end;
pivot:=st;
end;
procedure qsort(st,dr:longint);
var p:longint;
begin
if st<dr then begin
p:=pivot(st,dr);
qsort(st,p-1);
qsort(p+1,dr);
end;
end;
begin
assign(f,'algsort.in');
assign(g,'algsort.out');
reset(f);
rewrite(g);
settextbuf(f,bufin);
settextbuf(g,bufout);
randomize;
readln(f,n);
for i:=1 to n do read(f,v[i]);
qsort(1,n);
for i:=1 to n do write(g,v[i],' ');
close(g);
end.