MAC0338 Análise de Algoritmos
Notas da prova
Pessoal, eu lamento, mas ainda não tenho as notas da prova. As notas devem sair na próxima semana.
EXERCÍCIO [CLRS 6-1] (contruindo um heap através de inserções)
Vimos que o algoritmo
BUILD-MAX-HEAP (A,n) 1. para i <- chão(n/2) decrescendo até 1 faça 2. MAX-HEAPIFY (A,n,i)constrói um max-heap em tempo linear. O algoritmo BUILD-MAX-HEAP pode ser reescrito da seguinte maneira:
BUILD-MAX-HEAP2 (A,n) 1. para i <- 2 crescendo até n faça 2. MAX-HEAP-INSERT (A,i-1,A[i])Eis os algoritmos MAX-HEAP-INSERT e HEAP-INCREASE-KEY:
MAX-HEAP-INSERT (A,n,chave) 1. n <- n+1 2. A[n] <- -infinito 3. HEAP-INCREASE-KEY (A,n,chave)
HEAP-INCREASE-KEY (A,i,chave) 1. A[i] <- chave 2. enquanto i > 1 e A[chão(i/2)] < A[i] faça 3. A[i] <-> A[chão(i/2)] 4. i <- chão(i/2)