[Resolvido]Bubble Sort

Pessoal esse código funciona 100%

[code]public class BubbleSort {
public static void main(String args[]) {

	int x[] = {45,5,15,35,25};
	
	for(int i = 0; i < x.length; i++){
	
		for(int j = 0; j < x.length; j++){
	
			if(x[i] < x[j]){
				int aux = x[j];
				x[j] = x[i];
				x[i] = aux;
			}
		}
	}
	for(int i = 0; i < x.length; i++){
		System.out.println(x[i]);
	}
}

}[/code] A saída é:
5
15
25
35
45
mas quando faço uma troca no [size=18]if[/size] o resultado é totalmente diferente

if(x[i] < x[j]){ int aux = x[j]; x[i] = aux; x[j] = x[i]; }A saída é:
45
45
45
45
45

Porque acontece isso?

[]s

Faça um teste de mesa desse código.

O resultado deixa claro que a lógica do segundo bloco de código está incorreta:

if(x[i] < x[j]){ int aux = x[j]; // Atribui o valor de x[j] para uma variável auxiliar x[i] = aux; // Atribui o valor da variavel auxiliar, ou seja, x[j] para x[i]. Como o valor de x[i] não foi salvo em outra variável antes dessa operação ele é perdido x[j] = x[i]; // Essa atribuição é inútil, pois, antes dela, x[i] é igual a aux que é igual a x[j], ou seja, x[j] já é igual a x[i] }

Não vi seu algoritmo com calma, mas olhando pelo seu if está claro porque não funciona. Preste atenção no que você está fazendo dentro do if.

Valew di.magdaleno

Saquei a logica agora

[quote=javahunter]Valew di.magdaleno

Saquei a logica agora[/quote]
Magina!

Se tiver mais alguma duvida posta ai!