Duvida Arrays

4 respostas
W
Ola quero botar esse tipo de array mostra na ordem correta (1,5,6,85,89,445,3434) mas nao to conseguindo o codigo e esse ai :

[public class Heranca1 {

private int [] ordena(int [] inteiros){

for(int i = inteiros.length;i > 1;i){

for(int j = 0;j > i-2;j++){

if(inteiros [j] > inteiros[j+1]){

int temp = inteiros[j];

inteiros[j] = inteiros[j+1];

inteiros[i+1] = temp;

}

}

}

return inteiros;

}

public static void main(String [] args){

Heranca1 j = new Heranca1();

int [] inteiros = {89,3424,445,1,6,85,5};

j.ordena(inteiros);

for(int l = 0;l < inteiros.length;l++){

System.out.print(inteiros[l] +" ");

}

}
}]
Agradeço se algum poder da uma ajuda.

4 Respostas

ViniGodoy

Por favor, use a tag code:

seu código aqui
ViniGodoy
Os erros são: 1. Você trocou o sinal (usou > no lugar de <) no for do j. Além disso, ele deve ir até que j < i-1 e não i-2.
for (int j = 0; j < i - 1; j++) {
2. Na última linha do processo de troca, você está usando i no lugar de j:
inteiros[j + 1] = temp;
O código corrigido fica:
public class Heranca1 {

    private int[] ordena(int[] inteiros) {
        for (int i = inteiros.length; i > 1; i--) {
            for (int j = 0; j < i - 1; j++) {
                if (inteiros[j] > inteiros[j + 1]) {
                    int temp = inteiros[j];
                    inteiros[j] = inteiros[j + 1];
                    inteiros[j + 1] = temp;
                }
            }
        }
        return inteiros;
    }

    public static void main(String[] args) {
        Heranca1 j = new Heranca1();
        int[] inteiros = {89, 3424, 445, 1, 6, 85, 5};
        j.ordena(inteiros);
        for (int l = 0; l < inteiros.length; l++) {
            System.out.print(inteiros[l] + " ");
        }

    }
}
CarvalR2

Para treino vale a pena o exercício. Profissionalmente use:

Arrays.sort(inteiros);

pacote java.util

W

Valeu pela ajuda obrigado

Criado 11 de junho de 2010
Ultima resposta 11 de jun. de 2010
Respostas 4
Participantes 3