Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

apenasestudando

em relação ao FOR

Recommended Posts

void bubble(int x[],int n)  {    int troca, i, j, aux;    for (i = n-1; i > 0; i--)    {      // o maior valor entre x[0] e x[i] vai para a posição x[i]      troca = 0;      for (j =0; j < i; j++)      {        if (x[j] > x[j+1])        {          aux = x[j];          x[j] = x[j+1];          x[j+1] = aux;          troca = 1;        }      }      if (!troca) return;    }  }

Esse algoritmo é o mais simples que existe para ordenação...até aí tudo bem...só que eu nao estou entendendo o for......tipo

 

for (i= n-1; i>0: i--)

 

for (j=0 ; j<i; j++)

 

O primeiro for é executado, para todos os valores da array, e depois disso ele vai pro segundo?

 

i= n-1 (quer dizer oque)?

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

condição inicialo i começa igual a n-1 vai se executado até 1 pois quando for zero vai parar e seu valor diminui de 1 em 1 (i--)o outro é o mesmo raciocicio só que aumenta de 1 em 1 (j ++)

Compartilhar este post


Link para o post
Compartilhar em outros sites

condição inicial

 

o i começa igual a n-1 vai se executado até 1 pois quando for zero vai parar e seu valor diminui de 1 em 1 (i--)

 

o outro é o mesmo raciocicio só que aumenta de 1 em 1 (j ++)

<{POST_SNAPBACK}>

i++ and i--- beleza..isso eu entendi tranquilo...vamos supor que o vetor x seja assim:

 

x[45,25,89,1,2,4]

 

o i é uma variável de controle usada pelo j, porque depois o j<i certo?, mas eu nao entendi o n-1, na realidade o n-1 seria um valor menos o outro? ou o valor menos 1?

 

grato http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites
O primeiro for é executado, para todos os valores da array, e depois disso ele vai pro segundo?

 

É assim... o primeiro "for" serve pra percorrer cada elemento do array. A cada passagem por esse laço principal, é necessário um outro laço pra comparar o elemento atual com os demais elementos do array. Ele não percorre um depois o outro.. eles estão aninhados. Ele vai executar o segundo "for" a cada passagem do primeiro.

 

[]'s!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa tambem para te explicar melhor, o indice comeca em 0:X[0] = 45X[1] = 25X[2] = 89X[3] = 1X[4] = 2X[5] = 4sao no todo 6 elementos; para nao correr o risco de acontecer isso:X[6] = NAO EXISTE (BUG DO PROGRAMA)se coloca n(numero de elementos) -1

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.