ciao a tutti
sto studiando un esercizio che chiede di elaborare un ordinamento di un array per selezione er Ricorsivo e strano a dirsi.. non funziona come dovrebbe..


codice:
  int b[SIZE] = { 20 , 5 , 3 ,4 , 10 , 2 } ;
  int *primo = b ; 
  int *ultimo = &b[SIZE - 1 ] ;

  seleziona ( b , primo , ultimo ) ;
codice:
void seleziona ( int a [] , int *i , int *n ) 

{
	int small ;
	int j ;
	int temp ;


	if ( *i < *(n - 1)  )
	{
		small = *i ;

		for ( j  = i+1 ; j <= n ;j++ )
		
		if ( a[j] < small )

		{
		small = j ;
		temp = small ;
		small = *i ;
		*i = temp ;

		

		}
		seleziona ( a , i+1 , n ) ;
		

	}
	

	
}


il codice è abbastanza snello direi , ma non funziona come dovrebbe , cioè non effettua
nessun ordinamento !

potreste aiutarmi?

grazie