Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Cabral
RECORRÊNCIAS
PPGI/2014
Recorrências e Tempo de Execução
2
1 2 3 4 5 6 7 8
1 2 3 4 5 7 9 11 mid = 4, lo = 5, hi = 8
1 2 3 4 5 7 9 11 mid = 6, A[mid] = x
Encontrado!!!
Outro exemplo
A[8] = {1, 2, 3, 4, 5, 7, 9, 11}
– lo = 1 hi = 8 x=6
1 2 3 4 5 6 7 8
1 2 3 4 5 7 9 11 mid = 4, lo = 5, hi = 8
1 2 3 4 5 7 9 11 mid = 6, A[6] = 7, lo = 5, hi = 5
1 2 3 4 5 7 9 11 mid = 5, A[5] = 5, lo = 6, hi = 5
NÃO ENCONTRADO!
Análise do BINARY-SEARCH
7
T(n) = c + T(n/2)
Iteração
Substituição
Árvore de Recursão
Teorema Mestre
T(n) = c + T(n/2)
T(n/2) = c + T(n/4)
= c + c + T(n/4)
T(n/4) = c + T(n/8)
= c + c + c + T(n/8)
Assume n = 2k
T(n) = c + c + … + c + T(1)
k vezes
= clgn + T(1)
= Θ(lgn)
Prove a indução
Use a hipótese indutiva para encontrar alguns valores de constantes d
e n0 para os quais a indução seja válida
T(n) = c + T(n/2)
Chute: T(n) = O(lgn)
Indução: T(n) ≤ d lgn, para algum d e n ≥ n0
Hipótese indutiva: T(n/2) ≤ d lg(n/2)
Prova da indução:
T(n) = T(n/2) + c ≤ d lg(n/2) + c
= d lgn – d + c ≤ d lgn
se: – d + c ≤ 0, d ≥ c
Prova da indução:
T(n) = T(n-1) + n ≤ c (n-1)2 + n
= cn2 – (2cn – c - n) ≤ cn2
se: 2cn – c – n ≥ 0 c ≥ n/(2n-1) c ≥ 1/(2 –
1/n)
Para n ≥ 1 2 – 1/n ≥ 1 qualquer c ≥ 1 irá satisfazer
Estrutura de Dados e Complexidade de Algoritmos - Prof. Lucídio
PPGI/2014
A. F. Cabral
Exemplo 3
16
T(n) = 2T(n/2) + n
Chute: T(n) = O(nlgn)
Indução: T(n) ≤ cn lgn, para algum c e n ≥ n0
Hipótese indutiva : T(n/2) ≤ cn/2 lg(n/2)
Prova da indução:
T(n) = 2T(n/2) + n ≤ 2c (n/2)lg(n/2) + n
= cn lgn – cn + n ≤ cn lgn
se: - cn + n ≤ 0 c ≥ 1
i
3 2 3 2 1
cn n 4 cn n 4
4
T ( n) log 3 log 3
cn 2 n log4 3 O(n 2 )
i 0 16 i 0 16
3
1
• T(n) = O(n2) 16
Exemplo 2 - Substituição
21 T(n) = 3T(n/4) + cn2
Chute: T(n) = O(n2)
Indução: T(n) ≤ dn2, para algum d e n ≥ n0
Hipótese indutiva: T(n/4) ≤ d (n/4)2
Prova da indução:
T(n) = 3T(n/4) + cn2
≤ 3d (n/4)2 + cn2
= (3/16) d n2 + cn2
≤ d n2 se: d ≥ (16/13)c
1 = (2/3)in i=log3/2n
W(n) = O(nlgn)
Exemplo 3 - Substitution
23
n
T (n) aT f (n)
b
n
T (n) aT f (n)
b
Caso 1: se f(n) = O(nlogba -) para algum > 0, então: T(n) = (nlogba)
a = 2, b = 2, log22 = 1
T(n) = (nlgn)
Exemplos
T(n) = 2T(n/2) + n2
a = 2, b = 2, log22 = 1
Compare n com f(n) = n2
f(n) = (n1+) Caso 3 verificando a condição de
regularidade
a f(n/b) ≤ c f(n)
2 n2/4 ≤ c n2 c = ½ é uma solução (c<1)
T(n) = (n2)
Exemplos (cont.)
T(n) = 2T(n/2) + n
a = 2, b = 2, log22 = 1
T(n) = (n)
Exemplos
30 T(n) = 3T(n/4) + nlgn
a = 3, b = 4, log43 = 0.793
T(n) = (nlgn)
Estrutura de Dados e Complexidade de Algoritmos - Prof. Lucídio
A. F. Cabral
PPGI/2014
Árvore de Recursão
31
Considere T(n)=3T(n/4)+cn2
T(n) 2 cn
Considere T(n)=3T(n/4)+cn2
T(n) 2 cn
Considere T(n)=3T(n/4)+cn2
T(n) 2 cn2
cn
32cn2/16
.
2
. .
. . . . . . .
. . . . . . . . log43
. . . . . . . . (n )
T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1)