Ordenação por Troca

De Wiki DAINF
Edição feita às 19h57min de 25 de novembro de 2008 por R.dnsk (disc | contribs)
(dif) ← Versão anterior | ver versão atual (dif) | Versão posterior → (dif)

Também conhecido como método bolha ou Bubblesort.

Esta classe de algoritmos está baseada no princípio de analisar uma seqüência de números desordenados, comparando sempre um algarismo com o que está localizado à sua frente. Para realizar uma ordenação em ordem crescente, o algoritmo compara o algarismo em questão com o seu sucessor, se o último for menor que o primeiro, eles são trocados de posição. Caso contrário, suas posições permanecem inalteradas.

E assim o algoritmo segue fazendo essa série de verificações e eventuais alterações por toda a seqüência de números, ocasionalmente são feitas alterações em mais de uma etapa, para que toda a seqüência de números esteja ordenada.

Exemplo de implementação em C

void ordenacao_bolha (int vet[], int n){
   int i, j, k, aux;
   for(i=0; i<n-1; i++)
       for(j=0; j<n-i; j++)
           if(vet[j]>vet[j+1]){
               aux=vet[j];
               vet[j]=vet[j+1];
               vet[j+1]=aux;
           }
}

Referências

Bubble sort na Wikipédia
http://www2.dcc.ufmg.br/disciplinas/aeds2_turmaA1/bubblesort.pdf
http://pucrs.campus2.br/~annes/alg3_ord_tro
http://www.cs.princeton.edu/~ah/alg_anim/gawain-4.0/BubbleSort.html