ordenação professor paulo gomide 27 de outubro de 2015

25
Ordenação Professor Paulo Gomide 27 de outubro de 2015

Upload: luiz-henrique-fontes-aires

Post on 07-Apr-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Ordenação

Professor Paulo Gomide

27 de outubro de 2015

Page 2: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Sumário

• Ordenação:

– Considerações iniciais e definições;

– Métodos de ordenação:

• Inserção;

• Mergesort.

– Comparação entre os métodos apresentados.

Page 3: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Considerações Iniciais

• Objetivos:– Definir e apresentar o problema da ordenação;

– Introduzir os conceitos de métodos de ordenação simples

e eficiente;

– Apresentar e analisar um método simples e um método

eficiente, comparando os mesmos.

Page 4: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Definição e Objetivos da Ordenação

Page 5: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Algumas Aplicações de Ordenação

• Testar se todos os elementos de um conjunto são distintos;

• Remover duplicações de elementos de um conjunto;

• Encontrar o k-ésimo menor item de um conjunto;

• Interseção e união de conjuntos;

• Busca eficiente.

Page 6: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Métodos para Ordenação

Page 7: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Ordernação por Inserção

Page 8: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Ordernação por Inserção

Page 9: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Ordenação por Inserção: Análise

Page 10: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Divisão e Conquista

• Deseja-se revolver um problema com uma entrada grande;

• Para facilitar a resolução do problema, a entrada é dividida

em pedaços menores (DIVISÃO);

• Cada pedaço da entrada é então tratado separadamente

(CONQUISTA);

• Ao final, os resultados parciais são combinados para gerar

o resultado final procurado.

Page 11: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Divisão e Conquista

• Técnica consistem em 3 passos:

1. Divisão: Dividir o problema original em subproblemas menores;

2. Conquista: Resolver cada subproblema independentemente

(em geral, recursivamente);

3. Combinação: Combinar as soluções encontradas, compondo

uma solução para o problema original.

Page 12: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Exemplo• A execução do Mergesort pode ser facilmente descrita

por uma árvore binária, onde:- Cada nó representa uma chamada recursiva do Mergesort;- O nó raiz é a chamada inicial;- Os nós folhas são vetores de 1 ou 2 números (casos bases).

Page 13: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Exemplo

Page 14: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Exemplo

Page 15: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Exemplo

Page 16: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Exemplo

Page 17: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Exemplo

Page 18: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Exemplo

Page 19: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Exemplo

Page 20: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Exemplo

Page 21: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Exemplo

Page 22: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Exemplo

Page 23: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Análise

• A altura h da árvore de execução é O(log n);

• A quantidade de operações em cada nível da árvore é

assintoticamente igual a O(n);

• Logo: algoritmo é O(n log n), em todos os casos.

Page 24: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Mergesort: Análise

• Complexidade: O(n log n)• Vantagens– O(n log n) em todos os casos;– Indicado para aplicações que tem restrição crítica de tempo;– Fácil implementação.

• Desvantagens– Utiliza memória auxiliar – O(n);– Na prática pode ser mais lento que o Quicksort no caso médio.

Page 25: Ordenação Professor Paulo Gomide 27 de outubro de 2015

Referências

• Knuth, The Art of Computer Programming, Vol. 3: Sorting and Searching,

2nd Ed, MA: Addison-Wesley, 1998;

• Aulas do professor Antonio Alfredo Ferreira Loureiro, DCC/UFMG,

Algoritmos e Estruturas de Dados II, 2007;

• Aulas do professor Túlio Toffolo, UFOP, Algoritmos e Estruturas de Dados

I, 2011;

• Aulas do professor Tim Roughgarden, Stanford University, Design and

Analysis of Algorithms I, 2012.