Pagini recente » Cod sursa (job #1147301) | Cod sursa (job #2482744) | Cod sursa (job #1714548) | Cod sursa (job #1488745) | Cod sursa (job #927760)
Cod sursa(job #927760)
program quicksort;
type vector=array[1..500001] of longword;
var a:vector;
n,inf,sup,i:longint;
f,g:text;
intrare,iesire:array[1..1000000]of char;
procedure quicksort(var a:vector;inf,sup:longint);
var i,j:longint; aux,pivot:longword;
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;
if i<sup then quicksort(a,i+1,sup);
if j>inf then quicksort(a,inf,i-1);
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.