Cod sursa(job #241757)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 10 ianuarie 2009 21:53:07
Problema Sortare prin comparare Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 0.83 kb
var a:array[1..500000] of longint;
i,n:longint;
f,g:text;
procedure divid(st,dr:longint; var p:longint);
var piv,aux,i,j:longint;
begin
i:=st;
j:=dr;
piv:=a[st];
while (i<=j) do
   begin
     while (a[i]<=piv) and (i<=dr) do i:=i+1;
     while (a[j]>piv) do j:=j-1;
     if i<j then begin
             aux:=a[i];
             a[i]:=a[j];
             a[j]:=a[i];
             end;
   end;
a[st]:=a[j];
a[j]:=piv;
p:=j;
end;
procedure qsort(st,dr:longint);
var m:longint;
begin
if st<dr then begin
      divid(st,dr,m);
      if st<m-1 then qsort(st,m-1);
      if dr>m+1 then qsort(m+1,dr);
      end;
end;
begin
assign(f,'algsort.in');
reset(f);
readln(f,n);
for i:=1 to n do
    read(f,a[i]);
close(f);
qsort(1,n);
assign(g,'algsort.out');
rewrite(g);
for i:=1 to n do
write(g,a[i],' ');
close(g);
end.