Pagini recente » Cod sursa (job #596904) | Cod sursa (job #1000064) | Cod sursa (job #363087) | Cod sursa (job #516610) | Cod sursa (job #927705)
Cod sursa(job #927705)
program quicksort;
type vector=array[1..500001] of longint;
var a:vector;
n,inf,sup,i:word;
f,g:text;
procedure quicksort(var a:vector;inf,sup:longint);
var aux,pivot,i,j:longint;
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],' ');
close(f); close(g);
end.