Cod sursa(job #694183)

Utilizator andrei_toaderToader Andrei Sorin andrei_toader Data 27 februarie 2012 19:06:18
Problema Sortare prin comparare Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 0.74 kb
program quick_sort;
var f,g:text;
    n,i:longint;
    v:array [1..500000] of longint;

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

procedure sort (st,dr:longint);
var p:longint;
begin
 if st<dr then
 begin
  p:=pivot (st,dr);
  sort (st,p-1);
  sort (p+1,dr);
 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,v[i]);
 sort(1,n);
 for i:=1 to n do
  write (g,v[i],' ');
 close (f); close (G);
end.