Cod sursa(job #923632)

Utilizator ovidiu95Decean Ovidiu Ciprian ovidiu95 Data 23 martie 2013 18:27:57
Problema Sortare prin comparare Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.03 kb
var     f,g:text;
        v:array[-1..500000] of longint;
        n,i,j,x:longint;

function pivot(st,dr:longint):longint;
var aux,i,j:longint;
begin
        i:=0;
        j:=1;
        while st<dr do begin
                if v[st]>v[dr] then begin
                        aux:=v[st];
                        v[st]:=v[dr];
                        v[dr]:=v[st];
                        if i=0 then begin i:=1; j:=0 end else begin i:=0; j:=1; end;
                end;
                st:=st+i;
                dr:=dr-j;
        end;
        pivot:=st;
end;

procedure qsort(st,dr:longint);
var p:longint;
begin
        if st<dr then begin
                p:=pivot(st,dr);
                qsort(st,p-1);
                qsort(dr,p+1);
        end;
end;

begin
        assign(f,'algsort.in');
        assign(g,'algsort.out');
        reset(f);
        rewrite(g);
        readln(f,n);
        for i:=1 to n do read(f,v[i]);
        qsort(1,n);
        for i:=1 to n do write(g,v[i],' ');
        close(g);
end.