Cod sursa(job #694355)

Utilizator mada0222Tomus Madalina mada0222 Data 27 februarie 2012 20:09:59
Problema Sortare prin comparare Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 0.86 kb
program sss;
var f,g:text;
   n,i:longint;
   a:array[1..500000] of longint;
function pivot(st,sf:longint):longint;
var aux,i,j,di,dj:longint;
begin
  i:=st;
  j:=sf;
  di:=0;
  dj:=1;
    while i<j do
      begin
        if a[i]>a[j] then
          begin
          aux:=a[i];
          a[i]:=a[j];
          a[j]:=aux;
          aux:=di;
          di:=dj;
          dj:=aux;
          end;
        i:=i+di;
        j:=j-dj;
      end;
      pivot:=i;
end;
procedure sort(st,sf:longint);
var p:integer;
  begin
    if st<sf then
      begin
      p:=pivot(st,sf);
      sort(st,p-1);
      sort(p+1,sf);
      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,a[i]);
    sort(1,n);
    for i:=1 to n do
      write(g,a[i],' ');
close(f);
close(g);
end.