Pagini recente » Cod sursa (job #790651) | Cod sursa (job #497324) | Cod sursa (job #1358586) | Cod sursa (job #634266) | Cod sursa (job #927706)
Cod sursa(job #927706)
program quicksort;
type vector=array[1..500001] of qword;
var a:vector;
n,inf,sup,i:longint;
f,g:text;
procedure quicksort(var a:vector;inf,sup:longint);
var i,j:longint; aux,pivot:qword;
begin
if (inf<sup)then begin
pivot:=a[inf];
i:=inf+1; j:=sup;
while (i<=j) do begin
while (i<=sup)and(a[i]<=pivot) do inc(i);
while (j>=inf)and(a[j]>pivot) do dec(j);
if (i<j)and(i>=inf)and(j<=sup)then begin
aux:=a[i];
a[i]:=a[j];
a[j]:=aux;
inc(i); dec(j);
end;
end;
dec(i);
a[inf]:=a[i]; a[i]:=pivot;
quicksort(a,inf,i-1);
quicksort(a,i+1,sup);
end;
end;
begin
assign(f,'algsort.in');reset(f);
assign(g,'algsort.out');rewrite(g);
readln(f,n);
for i:=1 to n do read(f,a[i]);
quicksort(a,1,n);
for i:=1 to n do write(g,a[i],' ');
writeln(g);
close(f); close(g);
end.