Pagini recente » Cod sursa (job #648774) | Cod sursa (job #1193236) | Cod sursa (job #556703) | Cod sursa (job #3144693) | Cod sursa (job #927707)
Cod sursa(job #927707)
program quicksort;
type vector=array[1..500001] of longint;
var a:vector;
n,inf,sup,i:longint;
f,g:text;
intrare,iesire:array[1..500000]of char;
procedure quicksort(var a:vector;inf,sup:longint);
var i,j:longint; aux,pivot: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); settextbuf(f,intrare);
assign(g,'algsort.out');rewrite(g);settextbuf(g,iesire);
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.