Ordenação Bolha

1 resposta
danilo.silva

De acordo com o valor do vetor, eu preciso imprimir na tela, utilizando meu vetor (lista), assim

[telefone removido]

Ou seja, metade crescente e metade decrescente, como eu poderei fazer isso?

public class bolha {

    public static void main(String args[]) {
        int[] lista = {0,9,8,7,6,5,4,3,2,1};
        int totalElementos = lista.length;
        imprimir("\nInicial :", totalElementos, lista);
        for (int fixo = 0; fixo <= totalElementos-1; fixo++){
            for (int variavel=fixo+1; variavel <= totalElementos-1; variavel++){
                if (lista [fixo]>=lista[variavel]){
                    int armazena = lista[fixo];
                    lista[fixo] = lista[variavel];
                    lista[variavel] = armazena;
                }
            }
        }
        imprimir("\nFinal: ", totalElementos, lista);
    }
    
    public static void imprimir (String mensagem, int totalElementos, int[] lista) {
        System.out.println(mensagem);
        for (int indice = 0; indice <= totalElementos-1; indice++) {
            System.out.print(lista[indice] + " ");
        }
        

    }
}

1 Resposta

kapa01
Acho que isso resolve o seu problema
public class bolha {

    public static void main(String args[]) {
        int[] lista = {0, 9, 8, 7, 6, 5, 4, 3, 2, 1};
        int totalElementos = lista.length;
        imprimir(&quot;\nInicial :&quot;, totalElementos, lista);
        for (int i = 0; i &lt;= totalElementos - 1; i++) {
            for (int j = i + 1; j &lt;= totalElementos - 1; j++) {
                if (lista[i] &gt;= lista[j]) {
                    int aux = lista[i];
                    lista[i] = lista[j];
                    lista[j] = aux;
                }
            }
        }
        lista = ordenaEsquizito(lista);
        imprimir(&quot;\nFinal: &quot;, totalElementos, lista);
    }

    public static void imprimir(String mensagem, int totalElementos, int[] lista) {
        System.out.println(mensagem);
        for (int indice = 0; indice &lt;= totalElementos - 1; indice++) {
            System.out.print(lista[indice] + &quot; &quot;);
        }
    }

    static int[] ordenaEsquizito(int[] lista) {
        int i, aux = 0;
        int meio = lista.length / 2;
        int j = lista.length - 1;

        for (i = 1; i &lt; meio; i++) {
            aux = lista[meio + i];
            lista[meio + i] = lista[i];
            lista[i] = aux;
        }
        i++;
        while (i &lt; j) {
            aux = lista[i];
            lista[i] = lista[j];
            lista[j] = aux;
            j--;
            i++;
        }
        return lista;
    }
}
Criado 27 de fevereiro de 2009
Ultima resposta 28 de fev. de 2009
Respostas 1
Participantes 2