Método recursivo para Encontrar e retornar o maior elemento de um array

2 respostas
AbnoanMuniz

Boa noite a todos, estava hoje a tentar implementar a seguinte questão : Criar um método recursivo que recebesse um array de inteiros e retornasse o maior elemento deste array.

O que se passou foi, que eu criei o método funcional, porem ele pede como parâmetro de entrada o tamanho do array e o array, o que eu gostaria era que o método recebesse apenas o array como parâmetro de entrada.

public int retornarElementoMaxRecursivo (int a, int b[]) { 
	   

		if (a == 1){
	      return b[0];
	   } else {
	      
	      int x = retornarElementoMaxRecursivo (a-1, b);
	      if (x > b[a-1]){
	         return x;
	      }else{
	         return b[a-1]; 
	      }
	      }
	      
	}

Dessa forma ele funciona e realmente retorna o elemento max do array, mais como eu disse acima, gostaria de receber apenas o Array de inteiros como parâmetro.

Quem poder me da uma luz de como fazer isso fico grato o/

2 Respostas

rmendes08

Cara, o que você pode fazer nesse caso é criar uma sobrecarga que receba apenas o array como o ponto de entrada da recursão:

public int retornarElementoMaxRecursivo (int b[]) {
    return retornarElementoMaxRecursivo (b.length, b);
}

private int retornarElementoMaxRecursivo (int a, int b[]) {
    if (a == 1){
        return b[0];
    } else {   
        int x = retornarElementoMaxRecursivo (a-1, b);

        if (x > b[a-1]){
            return x;
        }else{
            return b[a-1]; 
        }
    }	      
}
AbnoanMuniz

Realmente dessa forma feita você faz o pedido, mais não teria outra forma de fazer o mesmo só que sem usar overloading?

Criado 17 de agosto de 2012
Ultima resposta 17 de ago. de 2012
Respostas 2
Participantes 2