Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Bubble sort implementado em Java

Eu estava entediado e resolvi implementar um bubble sort em Java e mostrar na tela o vetor a cada alteração feita, resultado final abaixo. Só queria compartilhar o código mesmo e talvez pegar alguma opinião. É válido colocar este ou mais códigos semelhantes que envolvam estruturas de dados e sorts no github?

package br.com.sorts;

public class BrincandoComBubble
{
    public static void main(String[] args) throws InterruptedException
    {
        boolean houveTroca;
        int contadorMudanca, i, x, aux;
        int[] numero = { 8590, 506, 45, 1022, 1, 84, 4, 999, 22, 46, -4, -1045, 16, 16184, 4 };

        //Ordenação do vetor via bubble sort:
        contadorMudanca = 0;
        houveTroca = true;
        while (houveTroca == true)
        {
            houveTroca = false;
            for(x = 0; x < numero.length - 1; x++)
            {
                if (numero[x] > numero[x + 1])
                {
                    aux = numero[x];
                    numero[x] = numero[x + 1];
                    numero[x + 1] = aux;
                    houveTroca = true;
                    contadorMudanca++;

                    //Exibindo o status pós-troca na tela:
                    limpaTela();
                    System.out.println(contadorMudanca + "ª mudança:");
                    System.out.println();

                    for (i = 0; i < numero.length; i++)
                    {
                        /*
                         * Trabalhando com o índice:
                         * X é o índice do menor número (após a troca);
                         * X + 1 é o úndice do maior número (após a troca);
                         * Portanto:
                         */
                        if (i == x)
                        {
                            System.out.println(numero[i] + "<--- Menor valor da alteração.");
                        }
                        else if (i == (x + 1))
                        {
                            System.out.println(numero[i] + "<--- Maior valor da alteração.");
                        }
                        else
                        {
                            System.out.println(numero[i]);
                        }
                    }                    
                    dorme();
                }
            }
        }

        //E então, mostrando o resultado final:
        limpaTela();
        System.out.println("Depois de " + contadorMudanca + " alterações, eis o vetor ordenado:");
        System.out.println();
        for (i = 0; i < numero.length; i++)
        {
            System.out.println(i + 1 + "º número: " + numero[i]);
        }
    }

    //Métodos Úteis
    public static void limpaTela()
    {
        for (int i = 0; i < 30; ++i)
            System.out.println();
    }

    public static void dorme() throws InterruptedException
    {
        Thread.sleep(700);
    }
}
1 resposta
solução!

Oi Arthur

Acho válido colocar este ou mais códigos semelhantes que envolvam estruturas de dados e sorts no github sim (=