{ File: ordbub.pas }

{ Scopo: ordinamento a bolle di un vettore (versione non ottimizzata) }

{ E` richiesta la definizione preliminare di:

const
  NumElementi = ...;

type
  TipoElemento = ...;
  TipoIndice   = 1..NumElementi;
  TipoVettore  = array [TipoIndice] of TipoElemento;

}

procedure BubbleSortNonOttimizzato (var A: TipoVettore);
{ Ordina il vettore A usando l'algoritmo di ordinamento a bolle nella versione
  non ottimizzata. }

var
  i, j : TipoIndice;
  temp : TipoElemento;

begin { BubbleSortNonOttimizzato }
  for i := 1 to NumElementi-1 do     { inizia fase i                          }
    for j := NumElementi downto i+1 do { cominciando dal basso ...            }
      if A[j] < A[j-1] then            {   se due elementi non sono in ordine }
      begin                            {     allora scambiali                 }
        temp := A[j];
        A[j] := A[j-1];
        A[j-1] := temp
      end
end; { BubbleSortNonOttimizzato }