Pagini recente » Cod sursa (job #1888727) | Cod sursa (job #1209714) | Cod sursa (job #1977645) | Cod sursa (job #1894213) | Cod sursa (job #293594)
Cod sursa(job #293594)
program qsort;
var a:array [1..500000] of longint;
i,n:longint;
function partition(p,q:longint):longint;
var aux,r,j:longint;
begin
randomize;
r:=p+random(q-p+1);
aux:=a[p];
a[p]:=a[r];
a[r]:=aux;
i:=p;
for j:=p+1 to q do
if a[j]<=a[p] then
begin
inc(i);
aux:=a[i];
a[i]:=a[j];
a[j]:=aux;
end;
aux:=a[p];
a[p]:=a[i];
a[i]:=aux;
partition:=i;
end;
procedure quicksort(p,q:longint);
var r:longint;
begin
if p<q then
begin
r:=partition(p,q);
quicksort(p,r-1);
quicksort(r+1,q);
end;
end;
begin
assign(input,'algsort.in');
reset(input);
assign(output,'algsort.out');
rewrite(output);
readln(n);
for i:= 1 to n do
read(a[i]);
quicksort(1,n);
for i:=1 to n do
write(a[i],' ');
close(input);
close(output);
end.