Length - 1

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.

:wink: