Академический Документы
Профессиональный Документы
Культура Документы
m 6
Caracteriza-se por identificar, a cada iteração, a
chave de Ã
ÚÃ valor na
do
vetor ainda
e colocá-la em sua
.
¬tiliza uma estrutura de dados Ú~ para organizar a
informação durante a execução do algoritmo.
¬m ~ © uma estrutura de dados ×
em árvore
binária que segue um crit©rio Úou condição bem-
definidoÚa .
u
m arante a manutenção da propriedade do ¦ .
Complexidade ÚG .
Ñ
m rocedimento de ordenação.
ComplexidadeÚG .
3eorganiza ~ ÚMbjetivo: manter a .
xemplo: 16 4 10 14 7 9 3 2 8 1
u u
16 16
4 10 14 10
14 9 3 4 9 3
7 7
u u
2 8 1 2 8 1
¬tiliza o procedimento
de forma ×
para transformar um vetor
em um ~ com
elementos.
u u u
16 16 16
4 10 14 10 14 10
14 7 9 3 4 9 3 9 3
7 7
u u u
2 8 1 2 1 2 4 1
1 Constrói um ~ a partir de um vetor de entrada ÚÑuild-Heap .
2 Como o maior elemento está localizado na raiz Ú
, este pode
ser colocado em sua posição final, trocando-o pelo elemento
3 3
Ã
Ã
, chama HeapifyÚÔ,1
e após t©rmino de HeapfyÚÔ,1 repete-se o passo anterior Ú2 , "
que o ~ tenha à # .
3esultado do Ñuild-Heap sobre o vetor
©: 16 4 10 14 7 9 3 2 8 1
16 14 10 8 7 9 3 2 4 1
u
16
14 10
8 7 9 3
u
2 4 1
Ôplicando o procedimento HeapSort sobre o vetor
16 14 10 8 7 9 3 2 4 resultado
1 do
Ñuild-Heap anterior, temos:
u u
16 1
14 10 2 3
8 7 9 3 4 7 8 9
u u
2 4 1 10 14 16
1 2 3 4 7 8 9 10 14 16
rocedimento Heapfy
heapify Ú Ô, i
×
e P squerdaÚi
d P DireitaÚi
maior P i
Úe ô heap_size[Ô and Ô[e > Ô[maior
maior P e filho da esquerda © maior
Úd ô heap_size[Ô and Ô[d > Ô[maior
maior P d filho da direita © maior
Úmaior i
×
exchangeÚÔ[i à Ô[maior
heapifyÚÔ, maior
$
6Ã
% ÚG ± cada troca e comparação tem custo MÚ1 .
No máximo ocorrem G trocas. Mcorrem duas comparações Ú
a cada chamada da função ~
.
rocedimento Ñuild-Heap
build-heap Ú Ô
×
heap_size[Ô P length[Ô
i P [length[Ô 2 & 1
heapifyÚÔ, i
.
6Ã
: Ô princípio o procedimento Ñuild-Heap executa
o procedimento ~
para os elementos dos vetor que estão
nas posições entre [n2,1 . ortanto, a complexidade
da construção do heap © Ún2log2 n . No entanto, a
complexidade © !.
rocedimento HeapSort
heapsort ÚÔ
×
build_heapÚÔ
i P length[Ô & 2
×
exchangeÚÔ[i à Ô[1
heap_size[Ô P heap_size[Ô ±1
heapifyÚÔ,1
$
6Ã
'
:
tapas:
- Construção do ¦ Y M
- Mrdenação
a ?Úraiz, final do segmento não-ordenado Y M
b
Úraiz Y M
xecuta os passos Úa e Úb n -1 vezes Y Ún-1 . log n Y M