Escolar Documentos
Profissional Documentos
Cultura Documentos
Algoritmos de Ordenacao
Algoritmos de Ordenacao
ENCIAS EXATAS
DEPARTAMENTO DE COMPUTAC
AO
TEORIA DA COMPUTAC
AO
Algoritmos de Ordenacao
Alunos:
Andre Ricardo Goncalves
Luiz Gustavo Andrade dos Santos
Paulo Roberto Silla
Profa. Linnyer Beatrys Ruiz
LONDRINA - PR
2007
Andre Ricardo Goncalves
Luiz Gustavo Andrade dos Santos
Paulo Roberto Silla
Algoritmos de Ordenacao
Trabalho apresentado `a Universidade Estadual de Lon-
drina, como parte de requisito de avaliacao do 3
o
Bimestre
da disciplina de Teoria da Computacao, do curso de Ciencia
da Computacao sob orientacao da Profa. Linnyer Beatrys
Ruiz.
LONDRINA - PR
2007
Sumario
1 Introducao 4
2 Algoritmos de Ordenacao 5
2.1 Bubble Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Insertion Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Selection Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Merge Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 Quick Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.6 Heap Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.7 Count Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.8 Bucket Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.9 Radix Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 Conclusao 16
Apendice 17
Referencias Bibliogracas 23
3
Captulo 1
Introducao
Metodos ordenacao de elementos sempre foi uma area atrativa para os pesquisadores
da Ciencia da Computacao. Em busca de metodos ecientes para resolver tal problema,
pesquisadores analisavam algumas situacoes do dia-a-dia, como a maneira que os jogadores
de cartas ordenavam as cartas que continha, para facilita-lo durante o jogo. Decorrente
disto varios algoritmos de ordenacao foram apresentados, como o Bubble Sort, Selection
Sort, Quick Sort, dentre outros. Este trabalho tem por objetivo apresentar de forma
objetiva as principais caractersticas de alguns metodos de ordenacao, suas vantagens e
desvantagens, suas restricoes e o tempo computacional de cada um deles.
4
Captulo 2
Algoritmos de Ordenacao
Os algoritmos de ordenacao sao algoritmos que colocam os elementos de uma lista em uma
determinada ordem, ou seja dada uma vetor de elementos de entrada n
1
, n
2
, n
3
, ..., n
k
, o
algoritmo sera aplicado a este vetor de forma que a sada seja da forma n
1
n
2
n
3
, ...,
n
k
.
Existem varios algoritmos destinados a este m, a maioria deles baseado na ideia de
Insercao, Selecao e Permutacao.
A eciencia dos algoritmos de ordenacao e analisada segundo alguns criterios, como
a complexidade computacional, quantidade de memoria utilizada, quanto ao uso de re-
cursao, estabilidade do algoritmo e outros. Esses criterios por sua vez sao analisados
pelo n umero de movimentos e o n umero de comparacao efetuadas durante a execucao do
algoritmo [Wir86].
Quanto aos criterios apresentados, segue a denicao de alguns deles abaixo:
Complexidade Computacional Esta relacionado com o comportamento do algoritmo
no melhor, medio e pior caso, que e denido pelo n umero de comparacoes efetuadas
pelo algoritmo em relacao ao tamanho do vetor de entrada. A complexidade e
comumente apresentada como uma funcao assintotica em relacao a n, que e igual
ao n umero de elementos do vetor de entrada.
Estabilidade A estabilidade e denida pela nao realizacao de trocas in uteis, como a
troca de elementos iguais. Um algoritmo e dito ser estavel se o mesmo nao efetua
trocas in uteis.
A seguir sao apresentados alguns dos principais algoritmos de ordenacao, como uma
breve explicacao de seu funcionamento e algumas caractersticas especcas como a
analise computacional deste algoritmo.
5
2.1 Bubble Sort