Di nuovo grazie a tutti .
Faccio tesoro di tutto ciò che mi scrivete esattamente come una spugna assorbe l'acqua!! Grazie davvero !
Ottima metafora quella del cacciavite martello chiodo e vite !!
In realtà negli esercizi che ho svolto, uno chiedeva con un algoritmo ricorsivo e ricerca binaria, di restituire il più grande e l'altro con ricerca ternaria ma credo che tutti gli esercizi abbiano scopo puramente didattico, indipendentemente dalla convenienza di utilizzo nei casi reali.
Infatti credo che ci sia poi bisogno di approfondire ulteriormente. ma comunque....
con il metodo max della classe Math e in maniera ricorsiva ho sviluppato questa soluzione ...
sempre che sia leggibile
public static int getPiuGrande(int[] a, int i, int lung) {
return (lung == i) ? a[0] : Math.max(a[i], getPiuGrande(a, i + 1, lung));
}
public static void main(String[] args) {
int[] a = { 27, 32, 39, 44, 88, 563, 776, 786, 987, 1000, 3333 };
System.out.println(getPiuGrande(a, 0, a.length));
}
Oppure forse più leggibile :
if (lung == inizio)
return a[0];
else
return Math.max(a[inizio], getPiuGrande(a, inizio + 1, lung));
Andrea grazie !! credo che tu intendessi una cosa di questo genere...
(adesso sto sbattendo la testa su un'altro esercizio che chiede di calcolare somme cumulative e si deve sommare ad ogni elemento dell'array la somma degli elementi che lo precedono ...ma appena avrò scritto qualcosa vi chiederò consiglio su come migliorarlo ....