Você está na página 1de 4

Ordenao de dados

A ordenao de dados nada mais do que colocar elementos em uma


determinada sequncia de informaes. Essas ordenaes podem ser dividias
em dois tipos, a ordenao interna que consiste em todos os elementos serem
ordenados acessados imediatamente devido a estes elementos caberem na
memria principal; e na ordenao externa em que os elementos so acessados
por blocos ou sequncias, devido a no caberem na memria principal.

Existem diversos tipos de algoritmos para ordenao de dados, sendo eles


classificados em dois tipos, os algoritmos de mtodo simples (Insertion sort,
Selection sort, Bubble sort e Comb sort), e de mtodos sofisticados/eficientes
(Merge sort, Heapsort, Shell sort, Radix sort, Gnome sort, Counting sort, Bucket
sort, Cocktail sort, Timsort e Quick sort).

METODOS SIMPLES

Os mtodos simples so recomendados para pequenos vetores, so eles:

Insertion sort - Consiste em um algoritmo simples quando aplicado em


pequenas listas, ou seja, dado em uma estrutura array ou lista, ele constri uma
matriz final com um elemento de cada vez, ou seja, uma insero por vez. Neste
algoritmo a lista percorrida da esquerda para a direita, modo em que avana
vai ordenando os elementos mais esquerda, ou seja, o funcionamento do
algoritmo consiste em cada passo a partir do segundo elemento selecionar o
prximo item da sequncia e coloc-lo no local apropriado de acordo com o
critrio de ordenao.

Selection sort - Consiste em selecionar o menor item e colocar na primeira


posio, selecionar o segundo menor item e colocar na segunda posio, e
assim sucessivamente, at restar apenas um elemento. composto por dois
laos, um lao externo (controla o ndice inicial) e outro interno (percorre todo o
vetor). Na primeira iterao do lao externo o ndice comea de 0 e cada iterao
ele soma uma unidade at o final do vetor e o lao interno percorre o vetor
comeando do ndice externo somado at o final do vetor.

Bubble sort - A ordenao neste algoritmo consiste em que cada elemento


da posio i seja comparado com o elemento da posio i + 1, ou seja, um
elemento da posio 2 ser comparado com o elemento da posio 3, e caso o
elemento da posio 2 for maior que o da posio 3, eles trocam de lugar e assim
em diante, fazendo com que o vetor seja percorrido diversas vezes, sendo assim
possvel dizer que este elemento no eficiente quando se trata de listas muito
grandes.

Comb sort Este algoritmo a melhoria do Bubble sort, ele reordena de


modo repetitivo diferentes pares de itens, separados por um salto, que
calculado a cada passagem.

METODOS SOFISTICADOS/EFICIENTES

Os mtodos eficientes so projetados para abranger uma quantidade maior


de dados, sendo assim eles se tornam mais complexos nos detalhes e
necessitam de um nmero menor de comparao. So estes mtodos:

Merge sort Esse algoritmo utiliza o mtodo de dividir para conquistar,


transformando o problema em pedaos menores, ou seja, ele resolve cada
pedao para em seguida unir. Sendo assim, o vetor ser dividido em duas partes
iguais, que sero divididas em duas partes, assim por diante at ter toda
sequencia ordenada, ou seja, realizado o agrupamento na ordem desejada,
formando uma nova sequncia ordenada de quatro elementos.

Heapsort Este algoritmo possui o mesmo princpio de funcionamento da


ordenao por seleo, este mtodo utiliza a estrutura de dados heap (pode ser
representado como uma arvore binaria, onde o menor elementos fica na raiz
para ordenao decrescente, e para crescente o maior elemento fica na raiz),
para ordenar os elementos de acordo com que vai inserindo, assim, no final das
inseres, os elementos podem ser facilmente removidos da raiz na ordem
desejada.

Shell sort o mais eficiente algoritmo de ordenao dentre os de


complexidade quadrtica (no utiliza recursividade), sendo uma extenso do
algoritmo de ordenao por insero, ele permite a troca de elementos distante,
diferente do algoritmo de ordenao por insero que possui a troca de itens
adjacentes para determinar o ponto de insero, ou seja basicamente o algoritmo
passa vrias vezes pela lista dividindo o grupo maior em menores.

Radix sort Consiste em um algoritmo de ordenao rpido e estvel, onde


cada chave uma cadeia de dados que pode ser ordenando em qualquer modo
relacionado com a lexicografia. Este algoritmo ordena inteiros processando
dgitos individuais, sendo que o radix sort no limitado apenas a inteiros.

Gnome sort Este algoritmo similar ao Insertion sort, diferenciando-se


que nesse algoritmo leva-se um elemento para sua posio correta, com uma
grande sequencia grande similar com o Bubble sort. O Gnome sort percorre o
vetor comparando seus elementos dois a dois, procurando um nmero maior
antes de um menor (vice-versa) para muda-los de posio at que toda a lista
seja ordenada.

Counting sort Consiste em um algoritmo de indexao, utilizado para


ordenar vetores de tipos inteiros, que sero utilizados como chaves no vetor
auxiliar requisitado por ele, neste vetor auxiliar feito uma separao e
numerao de ocorrncias de dados de entrada, e estes valores do vetor so
usados como ndices em outro vetor.

Bucket sort Consite um algoritmo que divide o vetor em um nmero finito


de recipientes, onde cada recipiente ordenado individualmente, ou seja, ele
funciona alocando um vetor do tamanho do mximo+1 do vetor que deseja se
ordenar, e cada entrada guardada no ndice deste vetor, onde em seguida
essas entradas so passadas para o vetor original.
Cocktail sort Este algoritmo nada mais do que uma variao do Bubble
Sort, em que sua nica diferena a ordenao da lista feita em ambas direes,
ou seja, bidirecional.

Timsort Este algoritmo foi projetado com a ideia de que no mundo real os
arrays de dados so ordenados em sub-arrays ordenados, onde o
funcionamento deste algoritmo consiste em dividir um array de entrada em vrios
sub-arrays, e em seguida cada um desses sub-arrays ordenado atravs do
Insert Sort, seguido por uma ordenao fundida em um nico array novamente
utilizando o Marge Sort.

Quick sort Consiste em um algoritmo de comparao com a chamada


estratgia de diviso em conquista, ou seja, ordenar as chaves de modo que as
menores precedam as chaves maiores. Esta ordenao feita atravs de um
elemento que ele determina como piv, e a partir deste organizada a lista em
que todos os nmeros anteriores sejam menores e posteriores sejam maiores, e
atravs da recursividade as duas partes (maiores e menores) sofrem o mesmo
processo at que a lista seja ordenada.

Você também pode gostar