Cod sursa(job #583209)

Utilizator dragangabrielDragan Andrei Gabriel dragangabriel Data 18 aprilie 2011 21:33:55
Problema Sortare prin comparare Scor 80
Compilator fpc Status done
Runda Arhiva educationala Marime 0.8 kb
program QSort;
type
List = array[1..500000] of longint;

var
  f,g:text;
  Data: List;
  I,n:longint;

procedure QuickSort(var A: List; Lo, Hi: longint);

procedure Sort(l, r: longint);
var
  i, j, x, y:longint;
begin
  i := l; j := r; x := a[(l+r) DIV 2];
  repeat
    while a[i] < x do i := i + 1;
    while x < a[j] do j := j - 1;
    if i <= j then
    begin
      y := a[i]; a[i] := a[j]; a[j] := y;
      i := i + 1; j := j - 1;
    end;
  until i > j;
  if l < j then Sort(l, j);
  if i < r then Sort(i, r);
end;

begin {QuickSort};
  Sort(Lo,Hi);
end;

begin {QSort}
 assign(f,'algsort.in');
 reset(f);
 assign(g,'algsort.out');rewrite(g);
 readln(f,n);
 for i:=1 to n do read(f,data[i]);
 QuickSort(Data, 1,n);
  for i := 1 to n do Write(g,Data[i],' ');
  close(g);
end.