1. Compare dois elementos adjacentes e troque o elemento por um valor maior para a direita.
2. Compare dois números adjacentes em sequência, colocando o número decimal na frente e o número grande atrás. Ou seja, na primeira viagem: compare primeiro o primeiro e o segundo números, coloque o decimal antes do número grande. Em seguida, compare o segundo e o terceiro números, coloque o decimal antes do número grande e assim por diante, até comparar os dois últimos números, coloque o decimal antes do número grande. Repita o primeiro passo até que toda a classificação seja concluída.
3. Após a conclusão da primeira comparação, o último número deve ser o maior número na matriz, para que o último número não participe da comparação durante a segunda comparação;
Após a conclusão da segunda comparação, o penúltimo número também deve ser o segundo maior número da matriz, para que os dois últimos números não estejam envolvidos na comparação durante a terceira comparação;
E assim por diante
4. Exemplo: para classificar a matriz: int [] arr = {6,3,8,2,9,1};
Primeiro tipo:
Primeiro tipo: 6 e 3 são comparados, 6 é maior que 3, troca de posição: 3 6 8 2 9 1
Segundo tipo: 6 e 8 são comparados, 6 é menor que 8, não trocam posições: 3 6 8 2 9 1
O terceiro tipo: 8 e 2 são comparados, 8 é maior que 2, troca de posição: 3 6 2 8 9 1
Quarto tipo: 8 e 9 são comparados, 8 é menor que 9, não trocam posições: 3 6 2 8 9 1
Quinta classificação: comparação de 9 e 1: 9 é maior que 1, posição de troca: 3 6 2 8 1 9
Foram feitas 5 comparações na primeira viagem, classificando os resultados: 3 6 2 8 1 9
-------------------------------------------------- -------------------
Classificação na segunda passagem:
Classificação pela primeira vez: 3 e 6 são comparados, 3 é menor que 6 e nenhuma posição de swap: 3 6 2 8 1 9
Segundo tipo: 6 e 2 são comparados, 6 é maior que 2, troca de posição: 3 2 6 8 1 9
O terceiro tipo: 6 e 8 são comparados, 6 é maior que 8, não trocam posições: 3 2 6 8 1 9
Quarto tipo: 8 e 1 são comparados, 8 é maior que 1, troca de posição: 3 2 6 1 8 9
Na segunda viagem, foram feitas 4 comparações, classificando os resultados: 3 2 6 1 8 9
-------------------------------------------------- -------------------
Classificação na terceira passagem:
Primeiro tipo: 3 e 2 são comparados, 3 é maior que 2, troca de posição: 2 3 6 1 8 9
A segunda classificação: 3 e 6 são comparados, 3 é menor que 6, não trocam posições: 2 3 6 1 8 9
O terceiro tipo: 6 e 1 são comparados, 6 é maior que 1, troca de posição: 2 3 1 6 8 9
Na segunda viagem, foram feitas três comparações: Resultados da classificação: 2 3 1 6 8 9
-------------------------------------------------- -------------------
Quarto tipo:
Classificação pela primeira vez: 2 e 3 são comparados, 2 é menor que 3, não trocam posições: 2 3 1 6 8 9
Segundo tipo: 3 e 1 são comparados, 3 é maior que 1, troca de posição: 2 1 3 6 8 9
No total, foram realizadas 2 comparações na segunda viagem, classificando os resultados: 2 1 3 6 8 9
-------------------------------------------------- -------------------
Classificação na quinta passagem:
Primeiro tipo: 2 e 1 são comparados, 2 é maior que 1, troca de posição: 1 2 3 6 8 9
No total, foram feitas 1 comparações na segunda viagem, classificando os resultados: 1 2 3 6 8 9
-------------------------------------------------- -------------------
Resultado final: 1 2 3 6 8 9
-------------------------------------------------- -------------------
5. Código
int[] arr = { 2, 8, 9, 6, 3, 1 };
int temp = -1;
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
System.out.println(Arrays.toString(arr));