questo semplice codice spiega come fare un bubblesort di un array passato da funzione. Descriviamo in parte le funzioni richieste:

scambia()... Effettua uno scambio, accetta 2 indirizzi di interi.

la funzione bubblesort() è il cuore, effettua il bubblesort di un array e definisce la dimensione di n elementi da scambiare.

#include <stdio.h>
#include <stdlib.h>

void scambia(int *a, int *b)
{
int temp=*a;
*a=*b;
*b=temp;     
}

void bubblesort(int array[], int dim)
{
int i=0,j=0, temp=0;

    while(i<dim)
    {
    
     for(j=0; j<dim; j++)
     {
      if( ( array[i] < array[j]) )
         scambia(&array[i], &array[j]);
     }
        
    i++; 
    }
}

void stampa(int array[], int dim)
{
int i=0;
for(i; i<dim; i++)
       printf("%dt",array[i]);     
}


int main()
{
int array[]={ 24, 78, 15, 18, 99, 63, 90, 110, 47 };

int dim=sizeof(array) / sizeof(int);
// calcola la dimensione dell'array, ovvero il numero di elementi.

printf("La dimensione della array e' : %d", dim );
printf("nnNumeri disordinati:n");
stampa(array,dim);
printf("nNumeri ordinati, crescenti:n");
bubblesort(array,dim);
stampa(array,dim);
system("pause>nul");
}