Algoritmo Java classificação bolha classificação

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));

 

Publicado 12 artigos originais · ganhou 9 · 10 mil visualizações

Acho que você gosta

Origin blog.csdn.net/finaly_yu/article/details/87626893
Recomendado
Clasificación