/* File: ordins.c */ /* Time-stamp: "2001-05-25 16:08:04 calvanes" */ /* Scopo: funzioni sui vettori */ void InsertionSort(TipoVettore A, int n) /* Ordina i primi n elementi del vettore A usando l'algoritmo di ordinamento per inserimento. */ { int elem_da_sistemare, /* indice del prossimo elemento da sistemare */ elem_da_controllare; /* indice dell'elemento da controllare */ TipoElemVettore valore_da_sistemare; /* valore dell'elemento da sistemare */ for (elem_da_sistemare = 0; elem_da_sistemare < n-1; elem_da_sistemare++) { valore_da_sistemare = A[elem_da_sistemare+1]; /* controlla e scala gli elementi partendo dall'ultimo elemento sistemato */ elem_da_controllare = elem_da_sistemare; while (elem_da_controllare >= 0 && A[elem_da_controllare] > valore_da_sistemare) { A[elem_da_controllare+1] = A[elem_da_controllare]; elem_da_controllare--; } /* sistema il valore da controllare nel posto rimasto libero */ A[elem_da_controllare+1] = valore_da_sistemare; } } /* InsertionSort*/