Cod sursa(job #866664)

Utilizator iu.ciocoiuIulian iu.ciocoiu Data 28 ianuarie 2013 16:22:06
Problema Sortare prin comparare Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 0.99 kb
program quicksort;
type vector=array[1..500000] of longint;
var i,n,k:longint;
    a:vector;
    f,g:text;

procedure poz(li,ls:longint;var k:longint; var a:vector);
var i,j,c,i1,j1:longint;
begin
i1:=0;
j1:=-1;
i:=li;
j:=ls;
while (i<j) do
   begin if (a[i]>a[j]) then begin c:=a[j];
                                   a[j]:=a[i];
                                   a[i]:=c;
                                   c:=i1;
                                   i1:=-j1;
                                   j1:=-c;
                             end;
         i:=i+i1;
         j:=j+j1;
   end;
k:=i;
end;

procedure quick(li,ls:longint);
begin
if (li<ls) then begin poz(li,ls,k,a);
                      quick(li,k-1);
                      quick(k+1,ls);
                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]);
quick(1,n);
for i:=1 to n do write(g,a[i],' ');
close (f);
close (g);
end.