Página Inicial do Fórum > Java Básico

Vetor - maior e menor elemento



Criar novo tópico   Responder tópico


  1. Bhoppus
    Posts:4


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Sr´s, bom dia....

    eu tenho o seguinte código:

    int [] v = {3, 2, 4, 7, 5, 8, 6, 1, 9, 10};
    OrdenacaoDecrescente bs = new OrdenacaoDecrescente();
    bs.Ordenar(v);

    System.out.println("Vetor Ordenado abaixo em forma decrescente:");
    for(int num : v){
    System.out.print(num + " ");
    }


    int menor = 0;
    int maior = 0;

    for(int a = 0; a < v.length; a++)

    if(v[a] > maior){
    maior = v[a];
    if(v[a] < menor)
    menor = v[a];}

    System.out.println();
    System.out.println("Maior Elemento : " + maior);
    System.out.println("Menor Elemento : " + menor);


    O problema está sendo o seguinte: no momento dele encontrar o menor elemento, ele busca apenas o valor iniciada na variável " 0" e não busca no vetor..

    o que eu estou fazendo de errado ?

    Obrigado.



  1. simu
    Posts:9417


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Bhoppus
    ...
    O problema está sendo o seguinte: no momento dele encontrar o menor elemento, ele busca apenas o valor iniciada na variável " 0" e não busca no vetor..

    o que eu estou fazendo de errado ?



    int menor = 0;

    só irá achar valores menores que zero...

    Soluções:
    1) int menor = Integer.MAX_VALUE;
    meio feio mas funciona....

    2) int menor = v[0]
    não funciona se o vetor estiver vazio...

    3) resultado: menor = v[v.length-1]
    já que o vetor foi ordenado em ordem decrescente, o maior valor estará na primeira posição e o menor na última... assumindo que a ordenação tenha funcionada.
    []]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.



  1. simu
    Posts:9417


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    PS: obviamente o mesmo erro vai ocorrer com o maior, se tiver somente valores negativos dentro do vetor...
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.



  1. batman
    Posts:288


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Segue um código legalzinho:


    _________________
    Você não precisa ser inteligente, basta ter motivação.

    "Tudo tem o seu tempo determinado, e há tempo para todo o propósito debaixo do céu", Ec 3,1



  1. Bhoppus
    Posts:4


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Sr´s...

    Muito obrigado pela ajuda, consegui fazer o que queria.

    Bruno



  1. crazyshock
    Posts:2


    Comment Arrow

    Publicado em: 26/03/2011 20:07:08

    Batman, usei o seu algoritmo porém houve uma falha,na hora de ordenar em vez de ordenar corretamente , ele da um bug, exemplo:

    coloco valores de 12,70,20,50

    Horaq ele ordena ele poem o 18 como menor e na lista de sequencia aparece apenas
    18,70,70,70,70
    tentei reformular esse alorimo mesmo assim naão tive solucao

  1. Comment Arrow

    Publicado em: 20/03/2012 00:17:57

    Poxa vida, ninguém dá um código certo não é?

    Para quem teve dúvidas e perdeu horas e mais horas de busca e não encontrou nada ai segue um código que de fato funciona.
    _________________
    "Sem virtude nem a sorte lhe salvará"

    ~Banido por sekkuar 27/03/2012 por difamação

  1. Comment Arrow

    Publicado em: 20/03/2012 00:17:57

    crazyshock
    Batman, usei o seu algoritmo porém houve uma falha,na hora de ordenar em vez de ordenar corretamente , ele da um bug, exemplo:

    coloco valores de 12,70,20,50

    Horaq ele ordena ele poem o 18 como menor e na lista de sequencia aparece apenas
    18,70,70,70,70
    tentei reformular esse alorimo mesmo assim naão tive solucao



    Respondi sua questão
    _________________
    "Sem virtude nem a sorte lhe salvará"

    ~Banido por sekkuar 27/03/2012 por difamação



  1. simu
    Posts:9417


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    depois de quase um ano...

    Petronio Filho
    Poxa vida, ninguém dá um código certo não é?

    Para quem teve dúvidas e perdeu horas e mais horas de busca e não encontrou nada ai segue um código que de fato funciona.



    funciona, mas somente se não tiver número negativo ou maior que 9999999...
    Foi por isso que escrevi que seria melhor inicializar os valores com Integer.MAX_VALUE e Integer.MIN_VALUE!

    Petronio Filho
    crazyshock
    Batman, usei o seu algoritmo porém houve uma falha,na hora de ordenar em vez de ordenar corretamente , ele da um bug, exemplo:

    coloco valores de 12,70,20,50

    Horaq ele ordena ele poem o 18 como menor e na lista de sequencia aparece apenas
    18,70,70,70,70
    tentei reformular esse alorimo mesmo assim naão tive solucao



    Respondi sua questão



    será? Na verdade nem tem questão...

    Penso que o algoritmo do batman está correto!
    Funciona perfeitamente com os valores 12,70,20,50. É muito estranho o crazyshock ter obtido um array com uma posição adicional - resultado tem cinco elementos, mas a entrada somente 4 - e com o número 18 que nem consta nas dados de entrada... Deve ter errado na hora de copiar...


    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.



  1. lucas iorio
    Posts:174


    Comment Arrow

    Publicado em: 21/03/2012 19:33:04

    Não sei qual seria o exercício, e não li todos os post,

    não poderia ser aassim?


    _________________
    Att,
    Lucas iorio
    Analista programador
    http://www.byiorio.com

  1. Comment Arrow

    Publicado em: 20/03/2012 00:17:57

    Lógico, acabei de entrar no blog e eu busquei essa resposta pq também me pediram na faculdade. Tava com um trabalho p fazer. Na humildade a gente vai aprendendo mais.


    simu
    depois de quase um ano...

    Petronio Filho
    Poxa vida, ninguém dá um código certo não é?

    Para quem teve dúvidas e perdeu horas e mais horas de busca e não encontrou nada ai segue um código que de fato funciona.



    funciona, mas somente se não tiver número negativo ou maior que 9999999...
    Foi por isso que escrevi que seria melhor inicializar os valores com Integer.MAX_VALUE e Integer.MIN_VALUE!

    Petronio Filho
    crazyshock
    Batman, usei o seu algoritmo porém houve uma falha,na hora de ordenar em vez de ordenar corretamente , ele da um bug, exemplo:

    coloco valores de 12,70,20,50

    Horaq ele ordena ele poem o 18 como menor e na lista de sequencia aparece apenas
    18,70,70,70,70
    tentei reformular esse alorimo mesmo assim naão tive solucao



    Respondi sua questão



    será? Na verdade nem tem questão...

    Penso que o algoritmo do batman está correto!
    Funciona perfeitamente com os valores 12,70,20,50. É muito estranho o crazyshock ter obtido um array com uma posição adicional - resultado tem cinco elementos, mas a entrada somente 4 - e com o número 18 que nem consta nas dados de entrada... Deve ter errado na hora de copiar...


    _________________
    "Sem virtude nem a sorte lhe salvará"

    ~Banido por sekkuar 27/03/2012 por difamação



  1. Chandimba
    Posts:70


    Comment Arrow

    Publicado em: 22/03/2012 07:22:42

    simu
    Bhoppus
    ...
    [...]


    já que o vetor foi ordenado em ordem decrescente, o maior valor estará na primeira posição e o menor na última... assumindo que a ordenação tenha funcionada.
    []]


    To de acordo com o Simu... e se tiver de ordem ascendente na primeira posição será o menor valor e o da última será o maior valor.



  1. Chandimba
    Posts:70


    Comment Arrow

    Publicado em: 22/03/2012 07:22:42

    Caso o vector não esteja ordenado vem aí um exemplo para pagar o menor e maior valor do vector:



  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> Java Básico