Algoritmo De Ordenação



Há mais ou menos vinte anos atrás, em um processo seletivo, fui surpreendido por um teste que pedia para ordenar um vetor de "n" elementos. Eu conhecia pelo menos três algoritmos que faziam isso, e eram o QuickSort, o Bubblesort e o ShellSort. Na hora da prova, no entanto, não conseguia lembrar de nenhum deles.
Para resolver a questão, portanto, tive de criar naquele momento um algoritmo de ordenação próprio.  Fiz o teste e fui aprovado no processo seletivo.

Mais tarde verifiquei, para a minha surpresa, que criara algo inédito nessa área. Todos os algoritmos de ordenação conhecidos utilizam pelo menos dois laços (loop). O meu algoritmo utiliza somente um laço. É verdade que ele não é lá muito rápido, mas resolve o problema.

O melhor caso dele acontece quando o vetor já está ordenado. O pior caso acontece quando o vetor está ordenado em ordem decrescente.

Posteriormente irei complementar esse artigo com a análise da complexidade do pior caso, o melhor caso e o caso médio.


Segue o algoritmo "GideonSort":

1) Em pseudo código:

Início do algoritmo

     " i" é o contador da posiçao do vetor
     i = 0

     Enquanto hover elementos, percorra o vetor
          Se o conteúdo do elemento sequinte for maior que o atual
              Troque as suas posiçoes
               Reinicie o contador de posicao do vetor (i=0);
          Senão
              Aumente "i" de uma posiçao (i=i+1)
          fim-se
     Fim Equanto;
Fim do algoritmo

2) Em linguagem de programaçao java:

/*
* GideonSort.java
*
*/
/**
* Um novo algoritmo de ordenação
* A new Sort A
lgorithm
* @author Gideon M. Gonçalves - Brazil, Rio de Janeiro - 2008
* e-mail: gideonmarinho@gmail.com
*/

class GideonSort {
void sort(int vetor[]) trows Exception {
int i = 0; // Contador de elementos do vetor
int temp; // recebe temporariamente um elemento para troca de posicao
int tam = vetor.length; // Tamanho do vetor

while(i < tam){
if (vetor[i+1] < vetor[i]) {
temp = vetor[i];
vetor[i] = vetor[i+1];
vetor[i+1] = temp;
i=0;
}
else
i++;
}
}
}


* * *

Autor: Gideon Marinho Gonçalves


Artigos Relacionados


A Logística Como Diferencial Competitivo

O Sexo é Sagrado...

Os Gozos E Prazeres Que Sua Carne Me Da!

10 Poderosas Palavras Que Vendem Valor

Perto

Saudade

Seguir Com FÉ