apenasestudando 0 Denunciar post Postado Setembro 22, 2005 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
Mário Monteiro 179 Denunciar post Postado Setembro 22, 2005 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
apenasestudando 0 Denunciar post Postado Setembro 23, 2005 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
EwE 0 Denunciar post Postado Setembro 24, 2005 se o vetor tem n elementos e a primeira posicao eh 0, a ultima vai ser a n-1 Compartilhar este post Link para o post Compartilhar em outros sites
Illidan 0 Denunciar post Postado Setembro 27, 2005 O primeiro for é executado, para todos os valores da array, e depois disso ele vai pro segundo?<{POST_SNAPBACK}> É 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
Lutzmind 0 Denunciar post Postado Setembro 28, 2005 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