Você está na página 1de 19

Campus Pau dos Fer r os

Di s ci pl i na de Al gor i t mos
Demet r i os . cout i nho@i f r n. edu. br

Prof. Demtrios Coutinho
I NFORMTI CA BSI CA
Algoritmos de Ordenao
ALGORITMOS DE ORDENAO
Importncia da ordenao ou classificao de dados
em atividades rotineiras:

Livros numa biblioteca

Agenda e catlogos telefnicos

Dicionrios

Arquivos com cadastro de funcionrios
Um pouco de histria
ALGORITMOS DE ORDENAO
Desde o surgimento da computao, o problema de
ordenao atraiu muita pesquisa.
Bubble sort foi analisada j em 1956
Library sort foi publicada. primeiramente em 2004.
Novos algoritmos so inventados at hoje.
Definio
ALGORITMOS DE ORDENAO

Pr em ordem; arrumar,

Organizao dos elementos de um conjunto de acordo
com uma relao de ordem com a qual se atribui, em
geral, a todo elemento, um antecedente e um
sucessor.
Estrutura de Dados
ALGORITMOS DE ORDENAO
Arquivo ou tabela com uma sequncia de n registros R1, R2, , Rn.

Cada registro contm uma certa quantidade de informaes divididas em
campos.

Um destes campos, ou a combinao de dois ou mais, conhecido como
chave.

O valor da chave usado para a classificao dos registros.

Os demais campos no tm influncia alguma nos algoritmos de
classificao.
Classificao
ALGORITMOS DE ORDENAO
Complexidade computacional
Complexidade emprica
Uso de memria
Estabilidade
Recurso/Iterativo
Comparao/Exame de chaves
Estabilidade
ALGORITMOS DE ORDENAO
Tipos de Ordenao
ALGORITMOS DE ORDENAO
Ordenao interna:

So os mtodos que no necessitam de uma memria secundria para o
processo, a ordenao feita na memria principal do computador;

Ordenao externa:

Quando o arquivo a ser ordenado no cabe na memria principal e, por isso,
tem de ser armazenado em ta ou disco.

A principal diferena entre os dois grupos que no mtodo de ordenao
interna qualquer registro pode ser acessado diretamente, enquanto no
mtodo externo necessrio fazer o acesso em algum dispositivo externo.
Metodos de Ordenao

ALGORITMOS DE ORDENAO
Particionamento (Partitioning)
Mistura (Merging)
Seleo (Selection)
Insero (Insertion)
Troca (Exchanging)
Sorte (Lucky)
Comparaes

ALGORITMOS DE ORDENAO
Lista dos Algoritmos de ordenao
ALGORITMOS DE ORDENAO
B U B B L E S O R T
BubbleSort(Ordenao por Flutuao (Bolha))
ALGORITMOS DE ORDENAO
Idia:
A idia principal do algoritmo percorrer o vetor n -1 vezes, a cada
passagem, fazendo flutuar para o inicio o menor elemento da sequncia.

Essa movimentao lembra a forma como as bolhas procuram seu prprio
nvel, por isso o nome do algoritmo.

BubbleSort(Ordenao por Flutuao (Bolha))
ALGORITMOS DE ORDENAO
BubbleSort(Ordenao por Flutuao (Bolha))
ALGORITMOS DE ORDENAO
Bubble(A , n)
Begin
1. For I = n downto 2 do
2. For j = 1 to i-1 do
3. If A[j] > A[j+1] then
4. Aux = A[j]
5. A[j] = A[j+1]
6. A[j+1] = Aux
Return
End
BubbleSort(Ordenao por Flutuao (Bolha))
ALGORITMOS DE ORDENAO
Estudo da Complexidade
Pior Caso:
O(N^2)
O vetor esta na ordem inversa.
Melhor Caso:
O(N^2)
O vetor j est ordenado.
Neste algoritmo tanto o melhor caso, como o pior caso tem ordem "n
2
" porque
em ambos os casos os ciclos so sempre realizados at ao fim, mesmo quando os
elementos j esto ordenados.
Bubble(A , n)
Begin
1. For I = n downto 2 do
2. For j = 1 to i-1 do
3. If A[j] > A[j+1] then
4. Aux = A[j]
5. A[j] = A[j+1]
6. A[j+1] = Aux
Return
End
BubbleSort(Ordenao por Flutuao (Bolha))
ALGORITMOS DE ORDENAO
Caractersticas:
Usa o mtodo de troca.
o mtodo mais simples em termos de implementao,
porm o menos eficiente.
Seu uso no recomendado para vetores com muitos Elementos.
Mtodo por troca.
Fcil de implementar
Estvel
Memria Constante O(1)
Pior caso O(n^2) , Melhor Caso : O(n^2)
Iterativo
ALGORITMOS DE ORDENAO
Seminrios
Seminrio sobre algoritmos

Cada dupla ficar com 2 algoritmos.

Itens necessrios de cada algoritmo:

Ideia (Descrever como o mtodo funciona)
Mostrar a implementao
Complexidade computacional(Pior e melhor caso)
Complexidade emprica (Mostrar grficos comparando os dois algoritmos)
Uso de memria
Estabilidade
Recurso/Iterativo
Mtodo

Bibliografia

Relatrio detalhado (Word/PDF)
Apresentao (Cada apresentao ter no mximo 30 min)
ALGORITMOS DE ORDENAO
Seminrios

Rodo -> Count sort/ BubbleSort 10/04
Jefferson/wander -> Shell sort/ Merge sort 10/04
Cristiano/Genildo -> Insertion sort/Selecction Sort 15/04
Evangilo/Mikael -> Bucket Sort/Radix sort 15/04
Junior/Luziana -> Heap sort/Gnome sort 17/04
Caio/Jackson -> Quick Sort/cocktail sort 17/04
Algoritmos
Campus Pau dos Fer r os
Di s ci pl i na de Al gor i t mos
Prof. Demtrios Coutinho
BONS ESTUDOS :)

Você também pode gostar