Eu tenho uma lição de casa para fazer, e eu realmente tentei fazer, porém está me dando um erro e não sei do que possa ser.
for (int i = 0; i < lista.length; i++) {
for (int j = 0; i < lista.length - 1; j++) {
if (lista[j] > lista[j + 1]) {
safe = lista[j];
lista[j] = lista[j + 1];
lista[j +1] = safe;
}
}
}
for (int k = 0; k < lista.length; k++) {
System.out.print(lista[k] + ", ");
}
Erro que apresenta:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 4
at tpc.Tpc.main(Tpc.java:17)
Codigo que não ficou formatado.
public static void main(String[] args) {
int[] lista = {4, 3, 2, 1};
int safe;
for (int i = 0; i < lista.length; i++) {
for (int j = 0; i < lista.length - 1; j++) {
if (lista[j] > lista[j + 1]) {
safe = lista[j];
lista[j] = lista[j + 1];
lista[j +1] = safe;
}
}
}
for (int k = 0; k < lista.length; k++) {
System.out.print(lista[k] + ", ");
}
}
}
Não entendi a sua pergunta.
Fiz uns ajustes no seu código e acho que resolvi o problema, compara o código abaixo com o seu e vê se entende as mudanças:
public static void main(String[] args) {
int[] lista = {4, 3, 2, 1};
int safe;
for (int i = 0; i < lista.length; i++) {
for (int j = i + 1; j < lista.length; j++) {
if (lista[i] > lista[j]) {
safe = lista[j];
lista[j] = lista[i];
lista[i] = safe;
}
}
}
System.out.println(Arrays.toString(lista));
}
Eu adaptei dessa resposta aqui: https://stackoverflow.com/a/26533452/3334365