Algoritmos de Ordenação #5 – Quick Sort

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

Temos aqui, um dos mais rápidos algoritmos de ordenação, o Quick Sort (rápido até no nome!). Grande parte da sua eficiência, dá-se pelo fato de utilizar técnicas de recursão (uma função que faz uma chamada a ela mesma). Com isso, este é considerado um algoritmo complexo. Nesta minha implementação, é necessário passar-se o conjunto de dados e o início e fim (no caso, início 0 e fim tamanho – 1).

Segue a implementação do algoritmo em C:

void quickSort(int *vetor, int inicio, int fim)
{
   int i, j, meio, aux;

   i = inicio;
   j = fim;
   meio = vetor[(inicio + fim) / 2];

   do
   {
      while(vetor[i] < meio)
         i++;
      while(vetor[j] > meio)
         j--;
      if(i <= j)
      {
         aux = vetor[i];
         vetor[i] = vetor[j];
         vetor[j] = aux;
         i++;
         j--;
      }
   }while(i <= j);

   if(inicio < j)
      quickSort(vetor, inicio, j);
   if(i < fim)
      quickSort(vetor, i, fim);
}

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.