PDA

View Full Version : [C++] Implementazione soluzione ricorsiva


ireon
04-07-2010, 13:36
Ragazzi, dovrei implementare una soluzione ricorsiva in grado di individuare il valore più piccolo contenuto in un array.

Però non ci riesco, la soluzione iterativa la implemento senza problemi, infatti il codice è il seguente:



int min (int a[], int size)

{

int min_array = a[0];
for (int i=1; i<size; i++)
if (a[i]<min_array)
min_array = a[i];

return min_array;

}


Ma per la soluzione ricorsiva avrei qualche problema, qualcuno potrebbe aiutarmi?

clockover
05-07-2010, 00:42
con una funzione del tipo

int minimo(array, int min, int index)

se raggiungi il limite dell'array ritorni min
altrimenti se min > array[index] ritorni minimo(array, array[index], index + 1);
senno ritorni minimo(array, min, index + 1);

tuccio`
05-07-2010, 11:20
int minimo(int *a, int size) {
if (size > 1) {
int x = minimo(a + 1, size - 1);
return (a[1] < x ? a[1] : x);
}
return a[1];
}

tomminno
05-07-2010, 11:41
Forse era meglio non fornire una soluzione completa dell'esercizio, la descrizione della soluzione doveva essere più che sufficiente.

tuccio`
05-07-2010, 13:14
be' son 4 righe, era più semplice scriverlo che descriverlo

british
06-07-2010, 12:02
int minimo(int *a, int size) {
if (size > 1) {
int x = minimo(a + 1, size - 1);
return (a[1] < x ? a[1] : x);
}
return a[1];
}


gli a[1] non dovrebbero essere a[0] ?

ciao!

british

tuccio`
06-07-2010, 12:08
gli a[1] non dovrebbero essere a[0] ?

ciao!

britishops, ovviamente sì