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 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]