Академический Документы
Профессиональный Документы
Культура Документы
5954006
5. Algoritmos de Ordenação
16 O número acima de
O número dentro
um nó é o índice
do círculo em cada
correspondente no
nó na árvore é o 2 3 vetor
valor armazenado
nesse nó 14 10
(a)
4 5 6 7
8 7 9 3
8 9 10
2 4 1
1 2 3 4 5 6 7 8 9 10
16 14 10 8 7 9 3 2 4 1 (b)
16
2 3
14 10
(a)
4 5 6 7
8 7 9 3
8 9 10 filho
2 4 1
filho
1 2 3 4 5 6 7 8 9 10
pai 16 14 10 8 7 9 3 2 4 1 (b)
Algoritmo heapify( a[ ] , L , R )
i L
j 2*L
x a[ L ]
se ( ( j < R ) e ( a[ j ] < a[ j +1 ] ) )
j j+1
fim se
enquanto ( ( j ≤ R ) e ( x < a[ j ] ) )
a[ i ] a[ j ]
i j
j 2*j
se ( ( j < R ) e ( a[ j ] < a[ j+1 ] ) )
j j+1
fim se
fim enquanto
a[ i ] x
heapify(a,2,10) 2 3
4 10
4 5 6 7
14 7 9 3
8 9 10
2 8 1
1 2 3 4 5 6 7 8 9 10
16 4 10 14 7 9 3 2 8 1
4 5 6 7
14 7 9 3
8 9 10
2 8 1
1 2 3 4 5 6 7 8 9 10
16 4 10 14 7 9 3 2 8 1
2 3
A propriedade de
14 10
heap máximo é
restabelecida para
o nó 2 pela troca 4 5 6 7
de a[2] por a[4], o
que destrói a 4 7 9 3
propriedade de
heap para o nó 4
8 9 10
2 8 1
1 2 3 4 5 6 7 8 9 10
16 14 10 4 7 9 3 2 8 1
2 3
14 10
4 5 6 7
8 7 9 3
a propriedade
de heap é
restabelecida 8 9 10
pela troca de
a[4] por a[9] 2 4 1
1 2 3 4 5 6 7 8 9 10
16 14 10 8 7 9 3 2 4 1
43 95 19 8
67
1 2 3 4 5 6 7 8
45 56 12 43 95 19 8 67
67 95 19 8
43
1 2 3 4 5 6 7 8
45 56 12 67 95 19 8 43
4 5 6 7
67 95 19 8
43
1 2 3 4 5 6 7 8
45 56 12 67 95 19 8 43
N=8 2 3
L=3 56 19
4 5 6 7
67 95 12 8
43
1 2 3 4 5 6 7 8
45 56 19 67 95 12 8 43
67 95 12 8
43
1 2 3 4 5 6 7 8
45 56 19 67 95 12 8 43
67 56 12 8
43
1 2 3 4 5 6 7 8
45 95 19 67 56 12 8 43
67 56 12 8
43
1 2 3 4 5 6 7 8
45 95 19 67 56 12 8 43
2 3
N=8
45 19
L=1
4 5 6 7
67 56 12 8
43
1 2 3 4 5 6 7 8
95 45 19 67 56 12 8 43
45 56 12 8
43
1 2 3 4 5 6 7 8
95 67 19 45 56 12 8 43
4 5 6 7
45 56 12 8
43
1 2 3 4 5 6 7 8
95 67 19 45 56 12 8 43
45 56 12 8
N=8 8
R=8 43
1 2 3 4 5 6 7 8
95 67 19 45 56 12 8 43
45 56 12 8
N=8 8
R=8 95
1 2 3 4 5 6 7 8
43 67 19 45 56 12 8 95
45 56 12 8
N=8 8
R=8 95
1 2 3 4 5 6 7 8
43 67 19 45 56 12 8 95
45 56 12 8
N=8 8
R=8 95
1 2 3 4 5 6 7 8
67 43 19 45 56 12 8 95
45 43 12 8
N=8 8
R=8 95
1 2 3 4 5 6 7 8
67 56 19 45 43 12 8 95
45 43 12 8
N=8 8
R=7 95
1 2 3 4 5 6 7 8
67 56 19 45 43 12 8 95
45 43 12 67
N=8 8
R=7 95
1 2 3 4 5 6 7 8
8 56 19 45 43 12 67 95
45 43 12 67
N=8 8
R=7 95
1 2 3 4 5 6 7 8
8 56 19 45 43 12 67 95
45 43 12 67
N=8 8
R=7 95
1 2 3 4 5 6 7 8
56 8 19 45 43 12 67 95
8 43 12 67
N=8 8
R=7 95
1 2 3 4 5 6 7 8
56 45 19 8 43 12 67 95
8 43 12 67
N=8 8
R=6 95
1 2 3 4 5 6 7 8
56 45 19 8 43 12 67 95
8 43 56 67
N=8 8
R=6 95
1 2 3 4 5 6 7 8
12 45 19 8 43 56 67 95
8 43 56 67
N=8 8
R=6 95
1 2 3 4 5 6 7 8
12 45 19 8 43 56 67 95
8 43 56 67
N=8 8
R=6 95
1 2 3 4 5 6 7 8
45 12 19 8 43 56 67 95
8 12 56 67
N=8 8
R=6 95
1 2 3 4 5 6 7 8
45 43 19 8 12 56 67 95
8 12 56 67
N=8 8
R=5 95
1 2 3 4 5 6 7 8
45 43 19 8 12 56 67 95
8 45 56 67
N=8 8
R=5 95
1 2 3 4 5 6 7 8
12 43 19 8 45 56 67 95
8 45 56 67
N=8 8
R=5 95
1 2 3 4 5 6 7 8
12 43 19 8 45 56 67 95
8 45 56 67
N=8 8
R=5 95
1 2 3 4 5 6 7 8
43 12 19 8 45 56 67 95
8 45 56 67
N=8 8
R=4 95
1 2 3 4 5 6 7 8
43 12 19 8 45 56 67 95
43 45 56 67
N=8 8
R=4 95
1 2 3 4 5 6 7 8
8 12 19 43 45 56 67 95
43 45 56 67
N=8 8
R=4 95
1 2 3 4 5 6 7 8
8 12 19 43 45 56 67 95
43 45 56 67
N=8 8
R=4 95
1 2 3 4 5 6 7 8
19 12 8 43 45 56 67 95
43 45 56 67
N=8 8
R=3 95
1 2 3 4 5 6 7 8
19 12 8 43 45 56 67 95
43 45 56 67
N=8 8
R=3 95
1 2 3 4 5 6 7 8
8 12 19 43 45 56 67 95
43 45 56 67
N=8 8
R=3 95
1 2 3 4 5 6 7 8
8 12 19 43 45 56 67 95
43 45 56 67
N=8 8
R=3 95
1 2 3 4 5 6 7 8
12 8 19 43 45 56 67 95
43 45 56 67
N=8 8
R=2 95
1 2 3 4 5 6 7 8
12 8 19 43 45 56 67 95
43 45 56 67
N=8 8
R=2 95
1 2 3 4 5 6 7 8
8 12 19 43 45 56 67 95
43 45 56 67
N=8 8
R=2 95
1 2 3 4 5 6 7 8
8 12 19 43 45 56 67 95
43 45 56 67
N=8 8
95
1 2 3 4 5 6 7 8
Vetor ordenado! 8 12 19 43 45 56 67 95
[ 45 56 12 43 95 19 8 67 ]
[ 8 12 19 43 45 56 67 95 ]
[ 95 67 56 45 43 19 12 8 ]
[ 19 12 8 45 43 56 67 95 ]