Algoritmos de Ordenação

12:24 , 4 Comentários

Um algoritmo de ordenação é um algoritmo que põe os elementos de uma lista em uma certa ordem. Os critérios de ordenação mais utilizados são a ordem numérica e a ordem lexicográfica. Uma ordenação eficiente é importante para otimização do uso de outros algoritmos que requerem que a entrada de dados estejam ordenada, e também para exibição de dados ao usuário, oferecendo uma forma organizada de exibição e facilitando o acesso a dados específicos.

Buble Sort

É um algoritmo que repetidamente passa pela lista a ser ordenada, compara cada par de itens adjacentes e os troca se eles estão na ordem errada. A passagem pela lista é repetida até que a troca não seja mais necessária, o que indica que a lista está ordenada.

O algoritmo é bem simples de ser implementado mas muito lento e impraticável em vários problemas.

Insertion Sort


Também um algoritmo simples que constrói a lista final (lista com todos os elementos já ordenados) um item por vez. É bem menos eficiente em listas grandes que outros algoritmos, mas oferece vantagens como: eficiência em pequenos conjuntos de dados, eficiência em listas semi-ordenadas, ordenação listas de acordo com seu recebimento.



Merge Sort

Subdivide a lista em duas novas listas, ordena-as, e as junta novamente colocando os elementos em posição até que a lista final esteja ordenada. Esse algoritmo usa uma chamada recursiva na divisão da lista em sub-listas, ou seja, a lista será dividida várias vezes até que seja ordenada.



Quick Sort

O Quick Sort divide a lista em listas menores, escolhe um elemento chamado "pivô". Então ordena a lista de forma que todos os elementos com valores menores que pivô se posicionem antes dele. Similarmente, os elementos após o pivô serão posicionados depois dele.
Depois desse processo, o pivô estará em sua posição final, e o processo será repetido recursivamente até que a lista esteja completamente ordenada.


Esses são apenas alguns dos algoritmos de ordenação dentre vários outros. Algoritmos estes que variam sua eficiência de acordo com tamanho da lista, tipo de ordenação, e dificuldade de implementação. Confira aqui os vários algoritmos em ação (perceba a diferença dos algoritmos apresentados aqui a algoritmos mais sofisticados/complicados e o tempo que cada um leva):




Isso conclui o post de hoje. Até a próxima o/

4 comentários: