Cod sursa(job #927760)

Utilizator Dddarius95Darius-Florentin Neatu Dddarius95 Data 26 martie 2013 00:23:43
Problema Sortare prin comparare Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 1.51 kb
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.