Ordenação

3 respostas
R

Olá, alguém pode me ajudar com o programa abaixo?
Gostaria que fossem feitos comentários linha a linha pra eu poder entender melhor...

Obrigado

class Bubblesort
{
	public static void main (String args [])
	{
		int num [] = new int [7];
		num [0] = 6;
		num [1] = 7;
		num [2] = 4;
		num [3] = 3;
		num [4] = 5;
		num [5] = 2;
		num [6] = 1;
		bolha (num);
		for (int i=0; i < num.length; i++)
			System.out.print (num[i] + ", ");
		
	}
	public static void bolha (int numeros [])
	{
		final int n = numeros.length;
		int aux;
		for (int i=0; i < n-1; i++)
		{
			for (int j=0; j < n-1-i; j++)
			{
			  if (numeros [j] > numeros [j+1])
			  {
				aux = numeros [j];
				numeros[j] = numeros[j+1];
				numeros [j+1] = aux;
			   }
			}
		}
	}
}

[color="red"]editado por Felipe: use bbcode para melhorar a visualizacao do codigo[/color]

3 Respostas

J

Oi

hummmm, por favor, evite duplicar posts amigo…

http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=11185

T+

R

Desculpa… mas é urgente o negócio… :cry:

M

Ae cara, posso até da uma comentada pra ti, mas não vai ajudar de nada. Tu sabes como funciona o Bubblesort?! Acho que não, portanto vou tentar explicar com poucas palavras:
Ele pega o vetor e vai comparando o elemento da posição i com o da posição i+1, se o elemento da posição i+1 for menor do que o da posição i, eles trocam de lugar, e isso é feito até que o vetor esteja ordenado.

class Bubblesort

{

public static void main (String args [])

{

int num [] = new int [7];

num [0] = 6;

num [1] = 7;

num [2] = 4;

num [3] = 3;

num [4] = 5;

num [5] = 2;

num [6] = 1;

// até aqui  foram colocados os valores em cada posição do vetor
bolha (num); // chama o método "bolha" e passa por parametro o vetor de inteiros definido acima
  
  // esse for escreve o vetor ordenado na tela
  for (int i=0; i < num.length; i++) 
     System.out.print (num[i] + ", ");
}

public static void bolha (int numeros [])

{

final int n = numeros.length; // pega tamanho do vetor e coloca em n

int aux;

for (int i=0; i < n-1; i++)

{

for (int j=0; j < n-1-i; j++)

{

if (numeros [j] > numeros [j+1])

{

// como expliquei la no inicio, aqui é como funciona o bubblesort. Este aux, como tu deves saber, serve apenas como um auxiliar para tu poder trocar os elementos de i com o de i+1.

aux = numeros [j];

numeros[j] = numeros[j+1];

numeros [j+1] = aux;

}

}
Feito meu! espero ter ajudado!

}

}

}
Criado 17 de novembro de 2004
Ultima resposta 17 de nov. de 2004
Respostas 3
Participantes 3