Java básico 049. Función, obtener el máximo de un “Array” utilizando recursividad.

Ejercicio: Desarrollar una función que calcule el valor máximo de una tabla (array) de forma recursiva.
Código Java
/**
*
* @author Ariel
*/

public class TablaMax {

/**
* @param args the command line arguments
*/

public static void main(String[] args) {
//Creamos un array con 10 elementos.
int t[] = new int[10];
//Cargamos el array con números generados de forma aleatoria.
for (int i = 0; i < t.length; i++) {
t[i] = (int) (Math.random() * 1000 + 1);
}
//Imprimimos los datos del array
System.out.println("Imprimiendo tabla.");
for (int i = 0; i < t.length; i++) {
int j = t[i];
System.out.print("[" + j + "]");
}
System.out.println("\nObteniendo el máximo.");
//Usamos la segunda función que retorna el valor del primero.
int maximo = maximo(t);
System.out.println("El máximo de la tabla es: " + "[" + maximo + "]");

}
static int maximo(int t[], int pos){
//A la función le pasamos 2 argumentos. El array y la posición inicial del índice.
int res;
//Si llegamos al final del array significa que el último es el máximo.
if(pos == t.length - 1){
res = t[pos];
}
else{
//Vamos iterando el array utilizando recursividad.
int k = maximo(t, pos + 1);
if (t[pos] > k){
res = t[pos];
}
else{
res = k;
}
}
return res;
}
//Sobrecargamos la primera función, a esta solo le pasamos un argumento,
//que es el array. La función retorna un entero que será el maximo llamando
//la primera función.
static int maximo(int t[]){
return maximo(t, 0);
}
}

No hay comentarios :

Publicar un comentario