Métodos de Ordenação

6 respostas
J

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.

Alguem poderia dar um empurrão?!

Abraço

6 Respostas

J

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 :?

J

Ok Lance,

Muito bem explicado
Agora eu compreendi
Obrigado pela atenção Ok?!

Abraço :wink:

T

Para ordenar um vetor tente algo como:

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;
                 }
         }
}
L

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.

dá uma testada aí e avisa se funciona :wink:

flw :wink:

L
<blockquote>

package apoio;

public class Ordenacao{

public static void main(String args[]){

int vetor[] = new int[10];
int i=0,j=0,aux=0;

vetor[0] = 4;

vetor[1] = 2;

vetor[2] = 14;

vetor[3] = 7;

vetor[4] = 43;

vetor[5] = 23;

vetor[6] = 13;

vetor[7] = 65;

vetor[8] = 9;

vetor[9] = 17;
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]);

}

}

}

</blockquote>

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.

Espero ter ajudado, qualquer coisa grita.

flw :wink:

L

De nada, qualquer dúvida só falar :wink:

Criado 4 de junho de 2006
Ultima resposta 6 de jun. de 2006
Respostas 6
Participantes 3