Bom dia,
Estou com algumas dúvidas referente ao método de ordenação, pelo que andei pesquisando o java tem algumas classes proprias para isso, mais eu gostaria de utilizar o método bolha por exemplo;
Fiz um código de teste logo abaixo mais não sei mais oque fazer para implementa-lo para que ocorra a ordenação.
então eu teria que criar mais um "for" mandando ele diminuir tipo "for (j=9;j>=0;j–)" se for assim eu ja até tentei esta lógica mais nao deu muito certo :?
int aux = 0;
int i = 0, j = 0;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (v[i] > v[j]) {
aux = v[i];
v[i] = v[j];
v[j] = aux;
}
}
}
Cara,
pelo que eu entendi (desculpa se eu entendi errado, mas hoje tá foda hehe) tu passa só uma vez pelo vetor. Tu precisa passar o número de elementos menos 1 vezes.
for (j=0; j<=8; j++){
for (i=0;i<=8;i++){
if(vetor[i] > vetor[i+1]){
aux = vetor[i];
vetor[i] = vetor[i+1];
vetor[i+1] = aux;
}
}
}
for (int k=0; k<vetor.length; k++){
System.out.println(vetor[k]);
}
}
}
[/QUOTE]
Bom cara, assim:
Eu peguei o teu código e alterei.
O que estava errado era o seguinte: Aquele println dentro do if era o que estava te confundindo, pois ele jogava na tela apenas o valor que trocava de lugar, e não todos os valores.
Além disso, tinha apenas um for, o que fazia com que ocorressem poucas alterações: o 2 trocava com o 4, o 23 com o 43, 43 com 13, 65 com 9 e 17.
Então eu coloquei um for por fora, para que passasse várias vezes pelo vetor.
Outra coisa: o teu for ia de 0 a 9, o limite do vetor, então quando i estava na posição 9 e tu testava vetor[i] com vetor de [i+1], tu saia do limite do vetor.