Cod sursa(job #929133)

Utilizator Dddarius95Darius-Florentin Neatu Dddarius95 Data 26 martie 2013 21:09:08
Problema Sortare prin comparare Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.97 kb
program qsort;
type vector=array[1..500000] of longint;
var v:vector;
    i,n:longint;
    intrare,iesire:array[0..500000] of char;
    f,g:text;

procedure swap(var a,b:longint);
var aux:longint;
begin
aux:=a;a:=b;b:=aux;
end;

procedure qsort(var v:vector; inf,sup:longint);
var i,j,pivot,aux:longint;
begin
i:=inf; j:=sup; pivot:=v[(inf+sup) div 2];
while i<=j do begin
              while v[i]<pivot do inc(i);
              while v[j]>pivot do dec(j);
              if i<=j then begin
                           swap(v[i],v[j]);
                           inc(i);
                           dec(j);
                           end;
              end;
if i<sup then qsort(v,i,sup);
if inf<j then qsort(v,inf,j);
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,v[i]);
qsort(v,1,n);
for i:=1 to n do write(g,v[i],' ');
close(f);close(g);
end.