Algoritimo recursivo!

Eu preciso de uma função recursiva para calcular o maior e o menor elemento de um conjunto de elementos, dados em um array de inteiros?

alguem pode me ajudar???

eu transformaria esse array numa lista com a classe Arrays, dps utilizaria a classe Collection pra ordenar a lista e finalmente pegaria os valores do 1o e ultimo indice… assim teria o maior e menor valor… beeeeeeeeeeeeeeeem mais simples que montar uma funcao, ainda mais recursiva

abrasssssssssss

Esquece linguagem estruturada man! rsrs Procura conhecer e utilizar o máximo dos recursos da nossa querida linguagem Java.
Como citado acima seria utilizando o método sort(x).

Collections.sort(x);

Sendo x, sua lista contendo os números inteiros à serem ordenados.

Ou, se tu ainda utiliza Array

 Arrays.sort(x) 

Até mais!

Olá IFMT, além das formas citadas pelos colegas renanreismartins e Tiago.Argolo, caso seus “elementos” sejam objetos vc ainda pode trabalhar com comparator ou comparable.

[]'s

Bem uma dica que eu dou para você é:
crie sua função recursiva e peça como parâmetros o array, que é de onde
você quer retirar o menor e maior elemento, e também o tamanho desse array.
Decremente o tamanho do array, depois verifique se o tamanho dele é igual a zero, caso
seja, retorne o valor do array tendo como índice o tamanho do array, caso não seja igual
a zero crie uma variável que receba o valor do array tendo como índice o tamanho do vetor,
crie outra variável que receberá a chamada do método recursivo. E por fim retorne o maior ou
menor elemento que encontra-se nas duas variáveis criadas.

Até mais…

[quote=thiagocg]Olá IFMT, além das formas citadas pelos colegas renanreismartins e Tiago.Argolo, caso seus “elementos” sejam objetos vc ainda pode trabalhar com comparator ou comparable.

[]'s[/quote]

Se sao numeros ou seja arrays de inteiros…pra que ele vai usar Comparator e Comparable sendo que Collections.sort e Arrays.sort ja vao ordenar de forma natural?

Ele quer algo recursivo, isso em java é bem complexo porque não existe ponteiro para tipos primitivos e vc nao pode retornar mais de um valor.
De qualquer forma, manda o código que você já fez pra gnt dar uma olhada.

Isto serviria?

[code]int aux = 0;
int[] dados = new int[10];

	for (int i = 0; i<10; i++)
		dados[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor para posição " + i));

    for (int i = 0; i<dados.length-1; i++)
    {
    	if (dados[i+1] < dados[i])
    	{
    		aux = dados[i+1];
    		dados[i+1] = dados[i];
    		dados[i] = aux;
    	}
    }

    for (int x: dados)
    	System.out.print (x + " ");

[/code]

Olá evertonsilvagomesjava, como eu citei no meu post:

isso numa possibilidade de no futuro ele precisar trabalhar com objetos, de resto concordo plenamente com vc!

[]'s

Rapaz, ele só está querendo duas funções recursivas, uma para retornar o maior valor e outra o menor de um array de inteiros.
Só isso.

	public static int max(int[] vector, int size)
	{
		--size;
		if (size == 0)
		{
			return vector[size];
		}
		
		int i_value = vector[size];
		int i_resulted = max(vector, (size));
		
		return (i_value >  i_resulted) ? i_value : i_resulted;
	}

[quote=WendersonLP]Rapaz, ele só está querendo duas funções recursivas, uma para retornar o maior valor e outra o menor de um array de inteiros.
Só isso.
[/quote]

é isso q eu ia dizer, ele provavelmente tem um exercicio sobre recursividade para fazer… e eu ia perguntar tb se deveria ser tudo em 1 método (o que torna o problema bastante complexo), ou se poderia usar um método para o maior e outro para o menor (o que faz mais sentido e seria mais facil)

O complicado é querer inventar.

[code]MajorMinor teste(MajorMinor mm, int[] array, int initialPos){

	if(array.length == 0){
		return null;
	}
	
	mm.setMajor(array[initialPos]);
	mm.setMinor(array[initialPos]);
	
	if(++initialPos == array.length){
		return mm;
	}
	
	return teste(mm, array, initialPos);
	
}[/code]

Classe auxiliar MajorMinor:

[code]class MajorMinor {
int major = Integer.MIN_VALUE;
int minor = Integer.MAX_VALUE;

public void setMajor(int major) {
	if(this.major < major){
		this.major = major;
	}
}

public void setMinor(int minor) {
	if(this.minor > minor){
		this.minor = minor;
	}
}

@Override
public String toString() {
	return "major= " + major + " and minor= " + minor;
}

}
[/code]