Académique Documents
Professionnel Documents
Culture Documents
Heapsort
Bruno Prado
I O que Heapsort?
I Criado por J. W. J. Williams em 1964
I Estratgia de Transformao e Conquista
I Converte os dados para uma estrutura de Heap
I Vantagens
I In-place
I Sem necessidade de espao adicional
I Eficincia algortmica
I Complexidade O(n log n)
I Aplicaes de tempo real
I Ordem exata de execuo
I Desvantagens
I Desempenho
I Mais lento que o Quicksort na prtica
I No explora o princpio da localidade
I Paralelismo
I No to facilmente paralelizvel
I Conceitos chave
I Heap mnimo ou mximo
I Construo da estrutura de Heap
I Manuteno da propriedade do Heap
11
1 2
11 09 05 07
0 1 2 3 09 05
3
07
i 1
Pai(i) =
2
I Armazenamento e indexao
I N filho esquerdo
11
1 2
11 09 05 07
0 1 2 3 09 05
3
07
Esquerdo(i) = 2i + 1
11
1 2
11 09 05 07
0 1 2 3 09 05
3
07
Direito(i) = 2i + 2
E D
Propriedade R E e R D
E D
Propriedade R E e R D
I Princpio de funcionamento
I Etapa de transformao
23
1 i=2
13 29
3 4 5 6
11 17 21 19
I Princpio de funcionamento
I Etapa de transformao
23
i=1 2
13 29
3 4 5 6
11 17 21 19
I Princpio de funcionamento
I Etapa de transformao
23
i=1 2
17 29
3 4 5 6
11 13 21 19
I Princpio de funcionamento
I Etapa de transformao
i=0
23
1 2
17 29
3 4 5 6
11 13 21 19
I Princpio de funcionamento
I Etapa de transformao
i=0
29
1 2
17 23
3 4 5 6
11 13 21 19
I Dados estruturados
I Heap mximo
29
1 2
17 23
3 4 5 6
11 13 21 19
I Princpio de funcionamento
I Etapa de conquista
19
1 2
17 23
3 4 5 6
11 13 21 29
I Princpio de funcionamento
I Etapa de conquista
19
1 2
17 23
3 4 5 6
11 13 21 29
I Princpio de funcionamento
I Etapa de conquista
23
1 2
17 19
3 4 5 6
11 13 21 29
I Princpio de funcionamento
I Etapa de conquista
23
1 2
17 21
3 4 5 6
11 13 19 29
I Princpio de funcionamento
I Etapa de conquista
19
1 2
17 21
3 4 5 6
11 13 23 29
I Princpio de funcionamento
I Etapa de conquista
19
1 2
17 21
3 4 5 6
11 13 23 29
I Princpio de funcionamento
I Etapa de conquista
21
1 2
17 19
3 4 5 6
11 13 23 29
I Princpio de funcionamento
I Etapa de conquista
13
1 2
17 19
3 4 5 6
11 21 23 29
I Princpio de funcionamento
I Etapa de conquista
13
1 2
17 19
3 4 5 6
11 21 23 29
I Princpio de funcionamento
I Etapa de conquista
19
1 2
17 13
3 4 5 6
11 21 23 29
I Princpio de funcionamento
I Etapa de conquista
11
1 2
17 13
3 4 5 6
19 21 23 29
I Princpio de funcionamento
I Etapa de conquista
11
1 2
17 13
3 4 5 6
19 21 23 29
I Princpio de funcionamento
I Etapa de conquista
17
1 2
11 13
3 4 5 6
19 21 23 29
I Princpio de funcionamento
I Etapa de conquista
13
1 2
11 17
3 4 5 6
19 21 23 29
I Princpio de funcionamento
I Etapa de conquista
13
1 2
11 17
3 4 5 6
19 21 23 29
I Princpio de funcionamento
I Etapa de conquista
11
1 2
13 17
3 4 5 6
19 21 23 29
I Anlise de complexidade
I Tempo O(n log2 n)
I Construo O(n)
I Heapify O(log2 n)
I Espao O(1)
I Implementao iterativa
I Sem alocao de espao extra
I No estvel
62
0 3 01 02 03
1 2 04 05
2 4 06 07 08 09
4 2 0F 10
3 5 0A 0B 0C 0D 0E
5 6 11 12 13 14 15 16
0: 01 02 03 04 05
1: 06 07 08 09
2: 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16