Duvida simples de logica

6 respostas
V

Simples, um exercicio que tenho aqui é assim,
tenho que fazer um programa que coloque em ordem uma lista N de nomes, que estao num array.

Eu consegui fazer esse meia boca que funciona com um numero de 3 nomes.

public class num6 {

public static void main(String args[]){

String nomes[] = { "Rodileia", "Danusa", "Vanio" };
  int n = 3;
  String temp = "";

  for(int i=0;i<(n/2);i++){

     if(nomes[i].charAt(0) > nomes[i+1].charAt(0)){

        temp = nomes[i+1];
        nomes[i+1] = nomes[i];
        nomes[i] = temp;

     }

  }

  for ( String l : nomes )
     System.out.println( "Nomes:"+l );

}

}

soh que quando eu acrescento mais um nome, almento em 1 a variavel N, mas nao ta dando mt certo,
nao to conseguindo uma logica que de certo,
alguem da uma mao :frowning:
vlw, abraços

6 Respostas

L

soh vou te dar uma dica tah?

primeiro que se vc tem 10 numeros, soh vai comparar ateh o 5 (n/2), ai ja tem erro, do 5-10 naum precisa ordenar?? hehe

agora mesmo fazendo um looping ateh o final, suponha que vc tenha 5 elementos, vc pega o primeiro e compara com o segundo, o segundo com o terceiro, o terceiro com o quarto e o quarto com o quinto certo? se vc tem essa combinacao: 3 8 7 1 2
vai fazer:
3 com 8: nada continua 3 8 7 1 2
8 com 7: muda, fica 3 7 8 1 2
8 com 1: muda, fica 3 7 1 8 2
8 com 2: muda, fica 3 7 1 2 8

ai acabou, e vc se ferrou :stuck_out_tongue:

naum acha que deveria comparar 3 com todos, depois 8 com todos, 7 com todos, etc? entao ai vc tem 2 for`s, um dentro do outro. Nao vou entrar no merito desse metodo, naum eh o melhor, o mais performatico, existem n outros metodos de se ordenar (soh procurar no google), mas esse seria o mais simples…

ve ai se consegue fazer

S

é so usar uma linha:

java.util.Arrays.sort(nomes);

não tente inventar a roda, so escolha a ideal e seja feliz. =]

J

Dê uma olhada nesses metodos de ordenação:

http://www.portaljava.com.br/home//modules.php?name=Content&pa=showpage&pid=56

V

vlw aew,
vo da uma olhada mais tarde,
eu ateh tentei fazer, mas minha cabeça hoje nao ta boa =/

Seu_Madruga:
Realmente, eu nao keria re-criar as coisas, problema é que eu preciso estudar tudo neh =)

L

“seu_madruga”:
é so usar uma linha:

java.util.Arrays.sort(nomes);

não tente inventar a roda, so escolha a ideal e seja feliz. =]

Acredito que o problema dele naum esteja em ordenar a lista em si e sim implementar a ordenacao (exercicio de logica em curso, algo assim, daqueles que o professor naum quer que vc use a coisa pronta :P).

V

“luBS”:
“seu_madruga”:
é so usar uma linha:

java.util.Arrays.sort(nomes);

não tente inventar a roda, so escolha a ideal e seja feliz. =]

Acredito que o problema dele naum esteja em ordenar a lista em si e sim implementar a ordenacao (exercicio de logica em curso, algo assim, daqueles que o professor naum quer que vc use a coisa pronta :P).

exato,

mas vlw a todo mundo que respondeu.
ja estudei os codigos que me passaram, foi proveitoso =D
abraços

Criado 18 de agosto de 2006
Ultima resposta 21 de ago. de 2006
Respostas 6
Participantes 4