C - Dati N valori interi forniti in ordine qualunque, stampare in uscita l'elenco dei valori dati in ordine crescente.
Oss. N sia una costante (per esempio 5)
- Selection sort, o ordinamento per minimi successivi:
- Ad ogni passo seleziona il minimo nel vettore e lo pone nella prima posizione, richiamandosi ed escludendo dal vettore il primo elemento.
#include <stdio.h>
#define MAX 5
#define TRUE 1
#define FALSE 0
void Scambio(int a[], int i, int posizione);
int main(int argc, char *argv[]){
int a[MAX];
for (int i = 1; i <= MAX; i++){
printf("Inserisci il valore a[%d] ",i);
scanf("%d",&a[i]);
}
printf("\n");
int posizione, min,j,i;
for(i = 1 ; i < MAX ; i++){
posizione = i;
min = a[i];
for( j = i+1; j <= MAX ; j++){
if( a[j] <= min) {
min = a[j];
Scambio(a, j,posizione);}
}
}
for (int i = 1; i <= MAX; i++){
printf("Array Ordinato a[%d] = %d\n ",i,a[i]);
}
return 0;
}
void Scambio(int a[], int i, int posizione){
int scambio;
scambio = a[posizione];
a[posizione] = a[i];
a[i] = scambio;
}