Array

2 respostas
ricardo_batista_alme

Galera estou com uma duvida de logica, tenho um teste e ele pede a seguinte questão.
Tenho um array de inteiros exe: {1,3,5} e outro array {2,4} ,então deveria ter outro array que receba este valores ordenados , como fica então.
fiz assim arrayImpar={1,3,5} arrayPar={2,4} arrayTodos.
então fiz um for no arrayTodos e dentro dele outro for no arrayImpar pegando os valores e jogando dentro do arrayTodos depois faço um for no arrayPar pagando os
numeros e jogando dentro do arrayTodos. fica muito laço.
Acho que deve ter algo mais curto mais simples , lembrando, não pode usar as collection do java,

2 Respostas

Rodrigo_Sasaki

Bom, você está só iterando o array de ímpares, depois o array de pares, e depois ordenando o último array, correto? Se for isso não tem muito o que fazer.

Se você não pode usar as classes utilitárias do Java, vai ter que fazer assim mesmo, iterar pelo menos uma vez cada array.

marcelo.silva.java
public class TestaCollection {

    static int[] par = {2, 4};
    static int[] impar = {1, 3};
    static Integer[] todos;
    static int percorrePar = 0;
    static int percorreImpar = 0;

    public static void main(String[] args) throws Exception {



        int tamanhoVetores = par.length + impar.length;
        todos = new Integer[tamanhoVetores];

        for (int i = 0; i < tamanhoVetores; i++) {

            if (i >= 0 && i < par.length) {
                setVetor(i, par[percorrePar]);
                percorrePar = percorrePar + 1;
            } else {
                setVetor(i, impar[percorreImpar]);
                percorreImpar = percorreImpar + 1;
            }
        }
        //Só pra imprimir
        for (int i : todos) {
            System.out.println("Vetor : " + i);
        }

        boolean houveTroca = true;

        while (houveTroca) {
            houveTroca = false;
            for (int i = 0; i < (todos.length) - 1; i++) {
                if (todos[i] > todos[i + 1]) {
                    int variavelAuxiliar = todos[i + 1];
                    todos[i + 1] = todos[i];
                    todos[i] = variavelAuxiliar;
                    houveTroca = true;
                }
            }
        }
         //Só pra imprimir
        for (int i : todos) {
            System.out.println("Vetor ajustado : " + i);
        }

    }

    private static void setVetor(int posicao, int valor) {
        if (todos[posicao] == null) {
            todos[posicao] = valor;
        }
    }
}

cara não sei se isso te ajuda...

[]s

Criado 28 de janeiro de 2013
Ultima resposta 28 de jan. de 2013
Respostas 2
Participantes 3