/* File: ordbubot.c */
/* Time-stamp: "2001-05-25 16:08:01 calvanes" */
/* Scopo: funzioni sui vettori */

void BubbleSortOttimizzato(TipoVettore A, int n)
  /* Ordina i primi n elementi del vettore A usando l'algoritmo di ordinamento
     a bolle nella versione ottimizzata. */
{
  int i = 0;
  int j;
  TipoElemVettore temp;
  bool ordinato;

  do {                                                      /* inizia fase i */
    ordinato = TRUE;
    for (j = n-1; j > i; j--)
      if (A[j] < A[j-1]) {                          /* scambia A[j] e A[j-1] */
        temp = A[j];
        A[j] = A[j-1];
        A[j-1] = temp;
        ordinato = FALSE;
      }
    i++;
  } while (!ordinato && i < n-1);
}  /* BubbleSortOttimizzato */