Pagini recente » Cod sursa (job #378427) | Cod sursa (job #982519) | Cod sursa (job #1167158) | Cod sursa (job #742400) | Cod sursa (job #241757)
Cod sursa(job #241757)
var a:array[1..500000] of longint;
i,n:longint;
f,g:text;
procedure divid(st,dr:longint; var p:longint);
var piv,aux,i,j:longint;
begin
i:=st;
j:=dr;
piv:=a[st];
while (i<=j) do
begin
while (a[i]<=piv) and (i<=dr) do i:=i+1;
while (a[j]>piv) do j:=j-1;
if i<j then begin
aux:=a[i];
a[i]:=a[j];
a[j]:=a[i];
end;
end;
a[st]:=a[j];
a[j]:=piv;
p:=j;
end;
procedure qsort(st,dr:longint);
var m:longint;
begin
if st<dr then begin
divid(st,dr,m);
if st<m-1 then qsort(st,m-1);
if dr>m+1 then qsort(m+1,dr);
end;
end;
begin
assign(f,'algsort.in');
reset(f);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
close(f);
qsort(1,n);
assign(g,'algsort.out');
rewrite(g);
for i:=1 to n do
write(g,a[i],' ');
close(g);
end.