/****************************************************************************** selection sort: Si eseguono N-1, scansioni (N=numero elementi del vettore) Alla scansione 0 si cerca la posizione del minimo dell'intero vettore e si scambia il suo contenuto con il contenuto della cella 0 Alla scansione 1 si cerca la posizione del minimo del vettore privato del primo elemento e si scambia il suo contenuto con il contenuto della cella 1 Alla scansione 2 si cerca la posizione del minimo del vettore privato dei primi due elementi e si scambia il suo contenuto con il contenuto della cella 2 ...e così fino all'ultima scansione *******************************************************************************/ #include #define MAX 100 int nconfronti=0; int nscambi=0; int carica_vettore(int a[]) { int n, i; printf("Quanti elementi?: "); scanf("%d", &n); for (i=0; ia[j]){ posmin=j; } } if(i!=posmin){ nscambi++; scambia(a,i,posmin); } } } #define TEST_MODE 1 int main(){ int n, i; # if(TEST_MODE) int a[] = { 52, 25, 35, 53, 63, 36, 66, 48, 12, 12, 88, 84, 48, 78, 26}; n = 15; #else int a[MAX]; n = carica_vettore(a); #endif printf("Vettore iniziale:\n"); stampa_vettore(a,0,n-1); SelectionSort(a, n); printf("Vettore ordinato con selection sort:\n"); stampa_vettore(a,0,n-1); printf("sono stati eseguiti %d confronti\n",nconfronti); printf("sono stati eseguiti %d scambi\n",nscambi); return 0; }