ciao a tutti, vorrei un parere da voi, ho fatto un sottoprogramma di una funzione che riordina gli elementi di un vettore in ordine crescente (è possibile adattarlo anche in senso decrescente), vi copio il codice:
codice:
void ordi_v3(int vett3[],int riemp3)
{ int i,j; //variabile scorrimento vettore
int min, temp; //variabile di algoritmo per il ciclo for
for(i=0;i<riemp3;i++)
{ min=vett3[i];
for(j=i+1;j<riemp3;j++)
{if (vett3[j]<min)
{ temp=min;
min=vett3[j];
vett3[j]=temp;
}
}
vett3[i]=min;
}
}
Vi spiego con il primo ciclo analizza tutti gli elementi del vettore e uno alla volta li pone uguale a minimo, poi si apre un secondo ciclo che va a confrontare i restanti elementi del vettore con il minimo...se l'elemento [j] è + piccolo del minimo allora si fa lo scambio e si va avanti..e così via finche non resta tutto ordinato...
Il parere che volevo sapere da voi, vi sembra giusto come algoritmo di riordinamento o è complicato e c'è un modo migliore per farlo? vi spiego ne ho visti molti, chi usa il while e l'if, chi usa il do-while cn i valori booleani, insomma un po di tutto...il modo più corretto che consuma meno memoria ed è utilizzabile anche in altri casi qual'è?? Grazie