Pagini recente » Cod sursa (job #2176904) | Cod sursa (job #3284306) | Cod sursa (job #143245) | Cod sursa (job #1092997) | Cod sursa (job #380993)
Cod sursa(job #380993)
Program quicksort;
type vector=array[1..500001] of longint;
var a : vector;
n,i : longint;
f,g : text;
Function partitie(s,d : longint) : longint;
var aux,piv,i,j : longint;
begin
piv:=a[(s+d) div 2];
i:=s-1; j:=d+1;
while true do
begin
repeat inc(i) until a[i]>=piv;
repeat dec(j) until a[j]<=piv;
if i<j then begin aux:=a[i]; a[i]:=a[j]; a[j]:=aux; end
else
begin
partitie:=j;
exit;
end;
end;
end;
Procedure sortare(s,d : longint);
var m : longint;
begin
if (s<d) then
begin
m:=partitie(s,d);
sortare(s,m);
sortare(m+1,d);
end;
end;
begin
assign(f,'algsort.in');
reset(f);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
close(f);
sortare(1,n);
assign(g,'algsort.out');
rewrite(g);
for i:=1 to n do
write(g,a[i],' ');
close(g);
end.