Algoritmos de ordenação
Em vários momentos do nosso dia-a-dia nos encontramos com a necessidade de fazer buscas em alguns bancos de dados ordenados. Como exemplo um celular, imagine como seria fazer buscas em seu celular de algum contato de sua lista se não estivesse ordenado (ordem alfabética), seria muito mais difícil e demorado. Por isso uma das atividades mais utilizadas na computação é a ordenação.
Os tipos de ordens mais utilizadas hoje em dia são as numéricas e as lexicográficas.
Existem vários tipos de algoritmos para fazer essas ordenações, os mais utilizados são:
Métodos Simples: * BubbleSort * InsertSort * SelectSort
Métodos Eficientes: * ShellSort * QuickSort * HeapSort
BubbleSort
Um método muito simples, porém pouco eficiente. Ele tem como idéia principal percorrer o vetor n-1 vezes, a cada passagem trocar o maior elemento pelo menor na sequência, fazendo o menor flutuar para o inicio do vetor. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e por isso o nome do algoritmo. Seu uso não é recomendado para vetores com muitos elementos.
InsertSort
É um algoritmo simples de ordenação, eficaz quando aplicado em um vetor com poucos elementos. Ele tem como idéia principal percorrer o vetor da esquerda para direita, deixando os elementos a esquerda ordenados. Ele pega o elemento do vetor começando da segunda posição e transfere o mesmo para sua posição de origem, sendo inserido em seu local apropriado. O algoritmo assemelha-se a um jogo de cartas, quando um jogador ordena as cartas sem sua mão, como em um jogo de pôquer, por exemplo.
SelectSort
Esse algoritmo tem como idéia principal pegar o menor número e o coloca na primeira posição do vetor (ou o maior, dependendo da ordem requerida), em seguida pega o segundo menor elemento para colocar na segunda posição do vetor, e assim sucessivamente para os n – 1 elementos restantes, até restar apenas um elemento.
ShellSort