Algoritmi di ordinamento

procedure Ordina;
var
  i, j: Integer;
begin
  for i:=1 to n-1 do
    for j:=i+1 to n do
      if a[i]>a[j] then
        Scambia(a[i], a[j]);
end;
procedure Ordina;
var
  i, j: Integer;
begin
  for i:=n-1 downto 1 do
    for j:=1 to i do
      if a[j]>a[j+1] then
        Scambia(a[j], a[j+1]);
end;
procedure Ordina;
var
  i, j, t: Integer;
begin
  for i:=2 to n do
  begin
    t:=a[i];
    j:=i;
    while (a[j-1]>t) and (j>1) do
    begin
      a[j]:=a[j-1];
      Dec(j);
    end;
    a[j]:=t;
  end;
end;
procedure Ordina(inf, sup: Integer);
var
  i, j, p: Integer;
begin
  i:=inf; j:=sup;
  p:=a[(inf+sup) div 2];
  repeat
    while a[i]<p do Inc(i);
    while a[j]>p do Dec(j);
    if i<=j then
    begin
      Scambia(a[i], a[j]);
      Inc(i); Dec(j);
    end;
  until i>j;
  if inf<j then Ordina(inf, j);
  if i<sup then Ordina(i, sup);
end;
  • File da includere i tutti programmi precedenti: V-ORD-XX.PAS