Cod sursa(job #567689)

Utilizator razvan.nicolescuNicolescu Razvan razvan.nicolescu Data 30 martie 2011 13:21:21
Problema Sortare prin comparare Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 0.96 kb
var
a:array[1..500000]of int64;
n,i:longint;
f,g:text;
procedure interschimb(i,j:longint);
var
aux:longint;
begin
        aux:=a[i];
        a[i]:=a[j];
        a[j]:=aux;
end;
function partitionez(l,r:longint):longint;
var
p,j,i:longint;
begin
        p:=a[r];
        j:=l-1;
        for i:=l to r do
                if a[i]<=p then begin
                        inc(j);
                        interschimb(i,j);
                end;
        partitionez:=j;
end;
procedure quick(l,r:longint);
var
poz:longint;
begin
        poz:=partitionez(l,r);
        if l<poz-1 then quick(l,poz-1);
        if poz+1<r then quick(poz+1,R);
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],' ');
        writeln(g);
        close(f);
        close(g);
end.