Introdução Aos Métodos de Ordenação
Introdução Aos Métodos de Ordenação
Introdução Aos Métodos de Ordenação
1. Introduo
Existe atualmente a necessidade de armazenar informaes e posteriormente consultar
os dados, e o mais importante que armazenar e consultar informaes possui-las to
ordenadas quanto possvel seja por ordem alfabtica, por idade, localidade ou outro item
sobre o qual necessrio trabalhar.
Uma das formas mais utilizada para resolver este problema na computao a
ordenao interna, ou seja, ocorre quando todo arquivo a ser ordenado cabe na memria
principal de um dispositivo. As ordens mais usadas so as comparaes numricas e
lexicogrficas.
Segundo Nivio Ziviani et al. (2007) ,ordenar corresponde ao processo de
rearranjar um conjunto de objetos em ordem ascendente ou descendente. O objetivo
principal da ordenao facilitar a recuperao posterior de itens do conjunto ordenado.
A atividade de colocar as coisas em ordem est presente na maioria das aplicaes em
que os objetos armazenados tm de ser pesquisados e recuperados.
As tcnicas de ordenao permitem apresentar um conjunto amplo de algoritmos
distintos para resolver uma mesma tarefa. Dependendo da aplicao, cada algoritmo
considerado possui uma vantagem particular sobre os outros algoritmos.
2. Problema da ordenao
Para que uma lista possa ser ordenada os seus elementos devem ser comparados
dois a dois. Isso significa que dados dois elementos da lista deve ser sempre possvel
determinar se eles so equivalentes ou se um deles menor que o outro. A ideia
associada ao termo menor depende do critrio de comparao utilizado.
Diz-se que uma lista est em ordem crescente se cada um de seus elementos
menor ou igual ao seu sucessor segundo algum critrio de comparao. Uma lista
somente pode ser colocada em ordem se seus elementos forem dois a dois comparveis
e compatveis. O problema da ordenao consiste em, uma dada lista, coloca-la em
ordem crescente ou decrescente, podendo ser feitas comparaes numricas, alfabticas
e tambm cronolgicas.
Comparao numrica: Um nmero x menor do que um nmero y se a
expresso x-y resulta em um nmero negativo. Esse o tipo mais comum de
comparao e, de certa forma, todos os demais critrios de comparao derivam
dele.
Comparao alfabtica: Um caractere menor do que outro se precede esse
outro na ordem alfabtica. Por exemplo, o caractere a precede o b, o b
precede o c e assim por diante. No computador, os caracteres so
representados atravs de nmeros. Dessa forma, a comparao entre caracteres
acaba sendo uma comparao entre os cdigos numricos e, portanto, uma
comparao numrica.
Comparao cronolgica: Uma data menor do que outra se ela antecede essa
outra. Uma data pode ser representada atravs de trs nmeros, um para
representar o ano, outro para o ms e outro para o dia. Ao comparar uma data
com outra, comparamos o ano. Em caso de empate, comparamos o ms. Em caso
de novo empate, comparamos o dia. Sendo assim, a comparao cronolgica
tambm feita comparando nmeros.
3. Mtodos Simples
So adequados para pequenos arquivos, sendo algoritmos pequenos e fceis de
implementar. Tais mtodos, considerados inferiores, so bastante simples, mas
introduzem ideias que servem de base para outros mtodos mais eficientes.
Esses mtodos utilizam como uma de suas operaes bsicas a comparao de
elementos da lista.
3.1. Insertion Sort
Eficiente para listas que esto quase em ordem. o mtodo que consiste em inserir
informaes num conjunto j ordenado. Seu Funcionamento similar ao da ordenao
das cartas de um baralho.
O Mtodo de Insero, tambm conhecido como Insero Direta, bastante
simples. Alm disso, ele extremamente eficiente para listas que j estejam
parcialmente ordenadas.
Nesse mtodo consideramos que a lista est dividida em parte esquerda, j
ordenada, e parte direita, em possvel desordem. Inicialmente, a parte esquerda contm
apenas o primeiro elemento da lista. Cada iterao consiste em inserir o primeiro
elemento da parte direita (piv) na posio adequada da parte esquerda, de modo que a
parte esquerda continue ordenada. fcil perceber que se a lista possui n elementos,
aps n-1 inseres ela estar ordenada.
Para inserir o piv percorremos a parte esquerda, da direita para a esquerda,
deslocando os elementos estritamente maiores que o piv uma posio para direita. O
piv deve ser colocado imediatamente esquerda do ltimo elemento movido.
4. Mtodos Sofisticados
So adequados para grandes arquivos, requerem poucas comparaes, sendo o problema
sua complexidade para se implementar.
4.1. Quick Sort
o algoritmo mais rpido que se conhece entre os de ordenao interna para uma ampla
variedade de situaes. Foi escrito em 1960 e publicado em 1962 por C. A. R. Hoare.
Adotando a estratgia Dividir para conquistar o funcionamento resume-se a dividir o
problema de ordenar um vetor de n posies em dois outros menores.
Nesse mtodo, a lista dividida em parte esquerda e parte direita, sendo que os
elementos da parte esquerda so todos menores que os elementos da parte direita. Essa
fase do mtodo chamada de Partio.
Uma estratgia para fazer a Partio escolher um valor como piv e ento
colocar na parte esquerda os elementos menores ou iguais ao piv e na parte direita os
elementos maiores que o piv.
Utilizaremos como piv o primeiro elemento da lista. Nesse caso, o piv deve
ser colocado entre as duas partes. O procedimento Partio, que implanta tal estratgia,
descrito nas Figuras 11 e 12.
5. Concluses
Foram apresentados cinco mtodos de ordenao interna mediante a
exemplificao dos algoritmos. A Seo 3 apresentou mtodos de ordenao simples o
insertionSort, SelectionSort e BubbleSort, j na Seo 4 foram apresentados dois
mtodos sofisticados o QuickSort e MergeSort.
No existe um mtodo de ordenao considerado universalmente superior a
todos os outros. necessrio analisar o problema e, com base nas caractersticas dos
dados, decidir qual o mtodo que melhor se aplica ele.
Aps a exemplificao desses mtodos atravs de seus algoritmos, agora sero
apresentadas algumas tabelas comparativas mostrando as vantagens e desvantagens
entre os mtodos mostrados neste trabalho.
Tabela 1. Vantagens e desvantagens do Mtodo Simples InsertSort
Vantagens
Desvantagens
- Fcil Implementao
- Algoritmo Estvel
Vantagens
Desvantagens
- Fcil Implementao
- Algoritmo no estvel
Vantagens
Desvantagens
- Fcil Implementao
- Algoritmo Estvel
Vantagens
Desvantagens
- Extremamente Eficiente
- Implementao difcil
- No estvel
Vantagens
- Passvel de ser transformado em estvel
Desvantagens
- Utiliza memria auxiliar
- Fcil Implementao
Referencias
Jnior, A. C. N. (2008) ALGORITMOS E ESTRUTURAS DE DADOS Mtodos de
ordenao Interna.. Disponvel em:
www.decom.ufop.br/menotti/aedI082/tps/tp3-sol1.pdf. Acessado em Julho de
2014.
Sales, G. V. (2013) Anlise de Desempenho de Algoritmos de Ordenao. Disponvel
em: http://pt.slideshare.net/gtsalles/artigo-paa-gustavo-de-carvalho-sales.
Acessado em Julho de 2014.
Oliveira, A. B. Mtodos de Ordenao Interna. Visual Book, So Paulo, 1st edition,
2002.