Algoritmos de Ordenação #2 – Seleção Direta

Padrão


Continuando com os algoritmos de ordenação, temos uma implementação em C do algoritmo de ordenação chamado Seleção Direta (ou Selection Sort). Esse algoritmo baseia-se em passar sempre o menor valor do vetor para a primeira posição (ou o maior dependendo da ordem requerida), depois o de segundo menor valor para a segunda posição, e assim é feito sucessivamente com os (n-1) elementos restantes, até os últimos dois elementos.

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

void selecaoDireta(int *vetor, int tamanho)<br />
{<br />
   int i, j, menor, aux;</p>
<p>   for(i = 0; i &lt; tamanho - 1; ++i)<br />
   {<br />
      menor = i;<br />
      for(j = i + 1; j &lt; tamanho; ++j)<br />
      {<br />
         if(vetor[j] &lt; vetor[menor])<br />
            menor = j;<br />
      }<br />
      aux = vetor[i];<br />
      vetor[i] = vetor[menor];<br />
      vetor[menor] = aux;<br />
   }<br />
}