Oi Pessoal tudo bem?
Sou estudante do 3º semestre do curso de Desenvolvimento de Softwares, e estou com uma dúvida em um exercicio que achei na Internet, quero entender antes de entregar por entregar, vocês poderiam me ajudar por favor:
O exercicio se trata do Buble sort
Preciso colocar os números que entram pela linha de comando ficar em ordem crescente só que não consigo entender esse trecho de código:
for (int i=0; i<meuArray.length;i++){
for (int j=0;j<meuArray.length-1;j++){
if(meuArray[j]>meuArray[j+1]){
temp = meuArray[j];
meuArray[j]= meuArray [j+1];
meuArray[j+1]= temp;
}
}
}
for (int x=0;x<meuArray.length;x++)
System.out.print(" " + meuArray[x]);
}
A principal coisa que eu não entendi qual a funcionalidade do length -1
Aguardo resposta
E obrigada pessoal
abs
Patricia
Na variável length está contida o tamanho do seu array(vetor). Usamos o -1 para que não estourar o vetor e dar uma exceção.
Exemplo:
String[] nomes = new String[3];
O tamanho do seu array é 3.
String[0], String[1] e String[2].
Se você fizer um for começando do contador 0, adicionando 1 você nao precisará utilizar o menos 1.
Exemplo
for(int i=0; i<nome.lenght; i++)
No caso do seu exemplo ele não quer que o último elemento do vetor seja percorrido por isso utiliza o length -1. Iria percorrer como no meu exemplo até 1
Exemplo:
for(int i =0, i<nome.lenght-1;i++)
String[0] e String[1]
Bem, vou tentar explcar para ti. Não é dificil, é só fazer um teste de mesa qdo se tem dúvida do q está acontecendo num exemplo ^^
bem aqui vai:
O que este código esta fazendo, naquele for interno pelo menos, é ir passando para cima os números de maior valor. Tá faltando algumas coisas nesse códigos, mas tranquilo.
[quote]
// se a posição anterior do array possuir um valor maior
// que a proxima posição do array
// troca eles de lugar
if(meuArray[j]>meuArray[j+1]){
temp = meuArray[j];
meuArray[j]= meuArray [j+1];
meuArray[j+1]= temp;
}
[/quote]
Tu pode ver no código acima a razão do lenght - 1, já que nos testes ele acessa sempre uma posição acima da posição atual da variavel j. Isso evita uma exceção de acesso a posição inexistente no array.
De qlqr forma é a idéia do bubble sort, ir passando os valores para cima e tal. Na verdade não testei meu codigo para ver se ele estava certo, soh fiz teste de cabeça mesmo. Qlqr coisa deixa msg ai ^^.
Oi Pessoal
Valeu pela ajuda, eu entendi como funciona esse código.