Bubble sort: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m wiki
questo funziona
Riga 33:
void BubbleSort(int* array, int elemN)
{
register int a, bi,tmp=0, scambioultimo;
register int sup=elemN-1; /* indica la parte di array ancora da ordinare */
for (a=0; a<elemN-1; ++a)
{
while (sup scambio>= 0;){
forultimo (b=0; b<elemN-1; ++b)
for (ai=0; ai<elemN-1sup; i++a)
{
if (array[bi] > array[bi+1]) { //* scambiate il '>' con '<' se volete un ordinamento decrescente */
{ tmp = a[i];
tmpa[i] = arraya[bi+1];
arraya[bi+1] = array[b]tmp;
array[b]ultimo = tmpi;
} scambio=1;
sup = ultimo; }
}
if (!scambio) return; //esco se non ci sono stati scambi, inutile proseguire l'array è già ordinato
}
}
 
''Due note di carattere tecnico:''
a,b,tmp sonoalcune variabili sono dichiarate come register, il chè significa che, se possibile, il [[compilatore]] C farà in modo che vengano collocate nei [[registro|registri]] della [[CPU]]; questo renderà più rapido l'accesso a dette variabili.
tmp è dichiarata di tipo int, quindi dovrà contenere interi; se l'array contiene elementi di tipo diverso, sarà sufficiente modificare la sua dichiarazione.