Sergio Cavalcante 6 Denunciar post Postado Fevereiro 23, 2014 GALERA ESTOU COM ALGUMAS DUVIDAS ORDENAÇÃO Eu tenho um vetor com os seguinte números predefinidos [47,31,29,17,11] 0 1 2 3 4 (posição do vetor) for(i = 1 ; i < = 4; i++) { escolhido = x [ i ]; // aqui vai receber i = 31 j = i - 1; // aqui vai ficar zero blz posição 1 -1 =0 while( j > = 0 && x [ j ] > escolhido) //aqui o bicho pega x[ j ] quanto e ???? { x [ j + 1 ] = x [ j ]; j = j - i ; } x [ j + 1 ] = escolhido Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Fevereiro 24, 2014 Na verdade cara você escolheu um caminho interessante para a ordenação. O "j" não deve ser menor que x[j] mas sim menor que 4 também. A lógica é a seguinte, ele vai pegar um número e vai passar por todo o array e verificar se ele é maior ou menor que o próximo número, se ele for o menor número de todo o array então ele será a posição 0, o próximo passo é você descobrir um número que seja maior que o número na posição 0 e menor que qualquer outro número, para isso você vai precisar guardar a ultima posição que você preencheu no array, ou seja, 0 Não sei se você está entendendo tudo, mas a lógica é verificar se o próximo número do array é maior que as ultimas posições preenchidas e menor que as posições que ainda faltam preencher. Esse é um dos caminhos para se ordenar, o outro caminho é utilizar trocas de variáveis onde você pode armazenar o valor atual, o anterior e o próximo e ir trocando as variáveis para que elas se ordenem. Compartilhar este post Link para o post Compartilhar em outros sites