Ir para conteúdo

Arquivado

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

Sergio Cavalcante

Insertion sort

Recommended Posts

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

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

×

Informação importante

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