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

void SelectionSort(TipoVettore A, int n)
  /* Ordina i primi n elementi del vettore A usando l'algoritmo di ordinamento
     per selezione del minimo. */
{
  int i, j, i_min;
  TipoElemVettore temp;

  for (i = 0; i < n-1; i++) {
                                /* ricerca la componente minima in A[i..n-1] */
    i_min = i;
    for (j = i+1; j < n; j++)
      if (A[j] < A[i_min])
        i_min = j;

    if (i != i_min) {                             /* scambia A[i_min] e A[i] */
      temp = A[i_min];
      A[i_min] = A[i];
      A[i] = temp;
    }
  }
}  /* SelectionSort */