Salve vorrei cercare di capire con che ordine vengono eseguite le chiamate alla funzione min_search_rec_bin in questo algoritmo ricorsivo:
codice:
/*
Cerca il minimo nella porzione di vettore v [ first .. last ].
Ritorna il valore dell ' indice del vettore c o r r i s p o n d e n t e al minimo
*/
int min_search_rec_bin ( int v [] , int first , int last ) {
int ris_h , ris_l , pivot ;
/* Caso Base */
i f ( first == last )
return ( first );
/* Divide e Impera */
pivot = ( first + last ) / 2;
ris_h = min_search_rec_bin (v , first , pivot );
ris_l = min_search_rec_bin (v , pivot + 1, last );
/* Combina */
i f (v[ ris_h ] < v[ ris_l ])
retrn ris_h ;
e l s e
return ris_l ;
}
Come si gestisce la ricorsione doppia in questo caso?