Algoritmos de Ordenação #3 – Inserção Direta

bb_bid = “1661096”;
bb_lang = “pt-BR”;
bb_keywords = ” ‘names’))); ?>”;
bb_name = “custom”;
bb_limit = “7”;
bb_format = “bbc”;

http://static.boo-box.com/javascripts/embed.js

Mais um algoritmo de ordenação, dessa vez o algoritmo de Inserção Direta ou Insertion Sort. Este algoritmo é bastante eficiente quando aplicado a um pequeno número de elementos. Em termos gerais, ele percorre um vetor de elementos da esquerda para a direita e à medida que avança vai deixando os elementos mais à esquerda ordenados.

Segue, então, a minha implementação em C deste algoritmo:

void insercaoDireta(int *vetor, int tamanho)
{
   int i, x, k, j;

   for(i = 1; i < tamanho; ++i)
   {
      x = vetor[i];
      k = 0;
      j = i - 1;
      while(j >= 0 && k == 0)
      {
         if(x < vetor[j])
         {
            vetor[j + 1] = vetor[j];
            --j;
         }
         else
            k = j + 1;
      }
      vetor[k] = x;
   }
}

http://pagead2.googlesyndication.com/pagead/show_ads.js

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.