Você está na página 1de 10

Maratona

www.fiponline.edu.br

PROF. Msc. BERG OLIVEIRA filesberg@gmail.com

2014.2

Aula 03 Ordenao de Dados


Ementa Anlise da complexidade
de algoritmos iterativos e recursivos;
Algoritmos de ordenao: bubblesort, insertion-sort, merge-sort,
quick-sort e heap-sort; Algoritmos
de Ordenao Linear: bucket-sort e
counting-sort. Algoritmos Gulosos;
Programao Dinmica; Grafos:
representao, busca em
profundidade e largura, ordenao
topolgica, rvores de cobertura
mnima, algoritmos de menor
caminho e fluxo mximo.

Porqu ordenar dados?


Busca e Manipulao de Dados
funcionamento bsico de todo sistema computacional.
um dos processos mais comuns.

Origens diversas dos dados:


Memria RAM, Discos
SGBDs, Arquivos
Vetores, Arrays, Listas, Filas, Pilhas, revores

Dados desordenados requerem mais processamento.

filesberg@gmail.com

Porqu ordenar dados?


Exemplo:
A ordenao feita pelas Chaves (elementos internos)
Vetor Ordenado
Vetor desordenado

Qual a melhor probabilidade de encontrar um dado?


Existem vrias formas de busca: ex.: busca linear, busca
binria.

filesberg@gmail.com

Ordenao
Tempo de execuo de um algoritmo de execuo.
Depende da entrada dos dados:
Se os dados estiverem ordenados, ou parcialmente, ser mais
rpido.

Na escolha de um algoritmo de ordenao, devemos


avaliar a escolha baseando-se no tamanho da entrada
Dados menores so mais rpidos e fceis de ordenar.

Complexidade do pior caso:


Limite do pior caso para o tempo de execuo da ordenao.
Notao Assinttica Big Oh
Algoritmo mais eficiente: tempo de execuo, no pior caso,
tem crescimento menor.
filesberg@gmail.com

Lembrando de Notao Assinttica

filesberg@gmail.com

Mtodo 1: Pesquisa Binria


Algoritmo simples de ordenao:
Converte o vetor a ser ordenado em uma rvore
A raiz pode ser qualquer elemento do vetor.
Geralmente se usa o primeiro ndice. Se for outro, ele no poder
ser usado.

Navega no vetor, e monta os elementos numa rvore binria.

Navega na rvore em ordem


ERD

Reescreve o vetor

filesberg@gmail.com

Mtodo 1: Pesquisa Binria


Anlise
Usa estrutura esttica e dinmica de memrias
Pior caso: T(n) = O(n2)
Todos os n vetores so visitados para montar a rvores.
Todos os n vetores so (novamente) visitados para montar o
arranjo.

Quais seriam o tempos de execuo para Pior caso e Melhor


caso?
Indicado para pequenos arranjos.

filesberg@gmail.com

Mtodo 2:Bubblesort
Ordenao por troca
Tambm conhecido como Mtodo Bolha
As bolhas mais leves so trazidas para o incio, e as mais pesadas
para o fim.

Em cada passagem, compara-se as chaves adjacentes


As chaves adjacentes = chaves vizinhas
As comparaes so feitas <<sempre>> entre vizinhos, a cada
passagem.

Se os elementos estiverem fora de ordem, trocam de posio.


Os elementos menores (bolhas mais leves) vo sendo trazidos
para o incio.

O procedimento pra quando no houver mais troca.

filesberg@gmail.com

Mtodo 2:Bubblesort
Funcionamento:
No quadro

Exemplo:
https://www.youtube.com/watch?v=lyZQPjUT5B4
Projeto da Sapientia University (http://www.sapientia.ro/en)

http://www.youtube.com/watch?v=8Kp-8OGwphY
https://study.cs50.net/bubble_sort
Projeto do Harvard College (http://cs50.tv/2014/fall/)

filesberg@gmail.com

Mtodo 2:Bubblesort
Anlise
Propriedades
Complexidade de pior caso: T(n) = O(n2)
A lista ordenada no local (in-place).
Simples, estvel, mas lento.

Indicao:
Arranjos muito pequenos e Demonstrao didtica

filesberg@gmail.com

10

Você também pode gostar