• Nenhum resultado encontrado

Análise de Algoritmos

N/A
N/A
Protected

Academic year: 2022

Share "Análise de Algoritmos"

Copied!
65
0
0

Texto

(1)

Análise de Algoritmos

CLRS 2.3, 4.1 e 4.2

Essas transparências foram adaptadas das transparências doProf.

(2)

Divisão e conquista

Esse paradigma envolve os seguintes passos:

Divisão: dividir a instância do problema em instâncias menores do problema.

Conquista: resolvero problema nas instâncias menores recursivamente(ou diretamente, se elas forem pequenas o suficiente).

Combinação: combinar as soluções das instâncias menores para gerar uma solução da instância original.

(3)

Divisão e conquista

Esse paradigma envolve os seguintes passos:

Divisão: dividir a instância do problema em instâncias menores do problema.

Conquista: resolvero problema nas instâncias menores recursivamente(ou diretamente, se elas forem pequenas o suficiente).

Combinação: combinar as soluções das instâncias menores para gerar uma solução da instância original.

(4)

Divisão e conquista

Esse paradigma envolve os seguintes passos:

Divisão: dividir a instância do problema em instâncias menores do problema.

Conquista: resolvero problema nas instâncias menores recursivamente(ou diretamente, se elas forem pequenas o suficiente).

Combinação: combinar as soluções das instâncias menores para gerar uma solução da instância original.

(5)

Divisão e conquista

Esse paradigma envolve os seguintes passos:

Divisão: dividir a instância do problema em instâncias menores do problema.

Conquista: resolvero problema nas instâncias menores recursivamente(ou diretamente, se elas forem pequenas o suficiente).

Combinação: combinar as soluções das instâncias

(6)

Mergesort

RearranjaA[p. .r], com p ≤r, em ordem crescente.

Método: Divisão e conquista.

MERGESORT(A,p,r) 1 sep <r

2 entãoq ← b(p+r)/2c 3 MERGESORT(A,p,q) 4 MERGESORT(A,q+1,r) 5 INTERCALA(A,p,q,r)

(7)

Intercalação

Problema: Dados A[p. .q]e A[q+1. .r]crescentes,

rearranjarA[p. .r]de modo que ele fique em ordem crescente.

Para que valores deq o problema faz sentido?

Entra:

p q r

Sai: p q r

A 11 22 33 44 55 66 77 88 99

(8)

Intercalação

Problema: Dados A[p. .q]e A[q+1. .r]crescentes,

rearranjarA[p. .r]de modo que ele fique em ordem crescente.

Para que valores deq o problema faz sentido?

Entra:

p q r

A 22 33 55 77 99 11 44 66 88

Sai: p q r

A 11 22 33 44 55 66 77 88 99

(9)

Intercalação

INTERCALA(A,p,q,r)

0 B[p. .r]é um vetor auxiliar 1 para i ←p até q faça 2 B[i]←A[i]

3 para j ←q+1 atér faça 4 B[r+q+1−j]←A[j] 5 i ←p

6 j ←r

7 para k ←p até r faça 8 se B[i]≤B[j]

9 entãoA[k]←B[i]

10 i ←i+1

11 senão A[k]←B[j]

← −

Essa versão do intercala não é estável. Por que?

(10)

Intercalação

INTERCALA(A,p,q,r)

0 B[p. .r]é um vetor auxiliar 1 para i ←p até q faça 2 B[i]←A[i]

3 para j ←q+1 atér faça 4 B[r+q+1−j]←A[j] 5 i ←p

6 j ←r

7 para k ←p até r faça 8 se B[i]≤B[j]

9 entãoA[k]←B[i]

10 i ←i+1

11 senão A[k]←B[j]

12 j ←j −1

Essa versão do intercala não é estável. Por que?

(11)

Intercalação

INTERCALA(A,p,q,r)

0 B[p. .r]é um vetor auxiliar 1 para i ←p até q faça 2 B[i]←A[i]

3 para j ←q+1 atér faça 4 B[r+q+1−j]←A[j] 5 i ←p

6 j ←r

7 para k ←p até r faça

8 se B[i]≤B[j]e i ≤q alteração 9 entãoA[k]←B[i]

10 i ←i+1

11 senão A[k]←B[j]

12 j ←j −1

(12)

Simulação

p q r

A 22 33 55 77 99 11 44 66 88

B

(13)

Simulação

k A

i j

22 33 55 77 99 88 66 44 11

(14)

Simulação

k A 11

i j

B 22 33 55 77 99 88 66 44 11

(15)

Simulação

k A 11 22

i j

22 33 55 77 99 88 66 44 11

(16)

Simulação

k A 11 22 33

i j

B 22 33 55 77 99 88 66 44 11

(17)

Simulação

k A 11 22 33 44

i j

22 33 55 77 99 88 66 44 11

(18)

Simulação

k A 11 22 33 44 55

i j

B 22 33 55 77 99 88 66 44 11

(19)

Simulação

k A 11 22 33 44 55 66

i j

22 33 55 77 99 88 66 44 11

(20)

Simulação

k A 11 22 33 44 55 66 77

i j

B 22 33 55 77 99 88 66 44 11

(21)

Simulação

k A 11 22 33 44 55 66 77 88

i=j

22 33 55 77 99 88 66 44 11

(22)

Simulação

A 11 22 33 44 55 66 77 88 99

j i

B 22 33 55 77 99 88 66 44 11

(23)

Consumo de tempo

Quanto tempo consome em função den:=r−p+1?

linha consumo de todas as execuções da linha

1 Θ(n)

2 Θ(n)

3 Θ(n)

4 Θ(n)

5–6 Θ(1)

7 Θ(n)

8 Θ(n)

9–12 Θ(n)

(24)

Conclusão

O algoritmo INTERCALAconsome Θ(n)unidades de tempo.

Também escreve-se

O algoritmo INTERCALAconsome tempo Θ(n).

(25)

Mergesort

MERGESORT(A,p,r) 1 sep <r

2 entãoq ← b(p+r)/2c 3 MERGESORT(A,p,q) 4 MERGESORT(A,q+1,r) 5 INTERCALA(A,p,q,r)

linha consumo máximo na linha

1 Θ(1)

2 Θ(1)

3 T(dn/2e) 4 T(bn/2c)

5 Θ(n)

(dn/2e) + (bn/2c) + Θ(n)

(26)

Mergesort

T(n) := consumo de tempomáximoquando n=r−p+1 T(n) = T(dn/2e) +T(bn/2c) + Θ(n)

Solução: T(n) é Θ(???).

Receita:

I Substitua a notação assintótica por função da classe.

I Restrinja-se an potência de 2.

I Estipule que na base o valor é 1.

I Use expansão ou árvore de recorrência para determinar um “chute” de solução.

I Confira se o chute está correto.

(27)

Expansão

Paran potência de 2 e k= lgn, temos que

T(n) = 2T(n/2) +n

= 2 2T(n/22) +n/2

+n = 22T(n/22) +2n

= 22 2T(n/23) +n/22

+2n = 23T(n/23) +3n

= 23 2T(n/24) +n/23

+3n = 24T(n/24) +4n

= . . . = 2kT(n/2k) +kn

= n+nlgn = Θ(nlgn).

Conclusão:

OMERGESORTconsume Θ(nlgn) unidades de tempo.

(28)

Expansão

Paran potência de 2 e k= lgn, temos que

T(n) = 2T(n/2) +n

= 2 2T(n/22) +n/2

+n = 22T(n/22) +2n

= 22 2T(n/23) +n/22

+2n = 23T(n/23) +3n

= 23 2T(n/24) +n/23

+3n = 24T(n/24) +4n

= . . . = 2kT(n/2k) +kn

= n+nlgn = Θ(nlgn).

T(n) = 2T(n/2) +n

= 2 2T(n/22) +n/2

+n = 22T(n/22) +2n

= 22 2T(n/23) +n/22

+2n = 23T(n/23) +3n

= 23 2T(n/24) +n/23

+3n = 24T(n/24) +4n

= . . . = 2kT(n/2k) +kn

= n+nlgn = Θ(nlgn). Conclusão:

OMERGESORTconsume Θ(nlgn) unidades de tempo.

(29)

Expansão

Paran potência de 2 e k= lgn, temos que

T(n) = 2T(n/2) +n

= 2 2T(n/22) +n/2

+n = 22T(n/22) +2n

= 22 2T(n/23) +n/22

+2n = 23T(n/23) +3n

= 23 2T(n/24) +n/23

+3n = 24T(n/24) +4n

= . . . = 2kT(n/2k) +kn

T(n) = 2T(n/2) +n

= 2 2T(n/22) +n/2

+n = 22T(n/22) +2n

= 22 2T(n/23) +n/22

+2n = 23T(n/23) +3n

= 23 2T(n/24) +n/23

+3n = 24T(n/24) +4n

= . . . = 2kT(n/2k) +kn

= n+nlgn = Θ(nlgn). Conclusão:

OMERGESORTconsume Θ(nlgn) unidades de tempo.

(30)

Expansão

Paran potência de 2 e k= lgn, temos que

T(n) = 2T(n/2) +n

= 2 2T(n/22) +n/2

+n = 22T(n/22) +2n

= 22 2T(n/23) +n/22

+2n = 23T(n/23) +3n

= 23 2T(n/24) +n/23

+3n = 24T(n/24) +4n

= . . . = 2kT(n/2k) +kn

= n+nlgn = Θ(nlgn)

T(n) = 2T(n/2) +n

= 2 2T(n/22) +n/2

+n = 22T(n/22) +2n

= 22 2T(n/23) +n/22

+2n = 23T(n/23) +3n

= 23 2T(n/24) +n/23

+3n = 24T(n/24) +4n

= . . . = 2kT(n/2k) +kn

= n+nlgn = Θ(nlgn). Conclusão:

OMERGESORTconsume Θ(nlgn) unidades de tempo.

(31)

Expansão

Paran potência de 2 e k= lgn, temos que

T(n) = 2T(n/2) +n

= 2 2T(n/22) +n/2

+n = 22T(n/22) +2n

= 22 2T(n/23) +n/22

+2n = 23T(n/23) +3n

= 23 2T(n/24) +n/23

+3n = 24T(n/24) +4n

= . . . = 2kT(n/2k) +kn

T(n) = 2T(n/2) +n

= 2 2T(n/22) +n/2

+n = 22T(n/22) +2n

= 22 2T(n/23) +n/22

+2n = 23T(n/23) +3n

= 23 2T(n/24) +n/23

+3n = 24T(n/24) +4n

= . . . = 2kT(n/2k) +kn

= n+nlgn = Θ(nlgn). Conclusão:

OMERGESORTconsume Θ(nlgn) unidades de tempo.

(32)

Expansão

Paran potência de 2 e k= lgn, temos que

T(n) = 2T(n/2) +n

= 2 2T(n/22) +n/2

+n = 22T(n/22) +2n

= 22 2T(n/23) +n/22

+2n = 23T(n/23) +3n

= 23 2T(n/24) +n/23

+3n = 24T(n/24) +4n

= . . . = 2kT(n/2k) +kn

= n+nlgn = Θ(nlgn)

T(n) = 2T(n/2) +n

= 2 2T(n/22) +n/2

+n = 22T(n/22) +2n

= 22 2T(n/23) +n/22

+2n = 23T(n/23) +3n

= 23 2T(n/24) +n/23

+3n = 24T(n/24) +4n

= . . . = 2kT(n/2k) +kn

= n+nlgn = Θ(nlgn). Conclusão:

OMERGESORTconsume Θ(nlgn) unidades de tempo.

(33)

Expansão

Paran potência de 2 e k= lgn, temos que

T(n) = 2T(n/2) +n

= 2 2T(n/22) +n/2

+n = 22T(n/22) +2n

= 22 2T(n/23) +n/22

+2n = 23T(n/23) +3n

= 23 2T(n/24) +n/23

+3n = 24T(n/24) +4n

= . . . = 2kT(n/2k) +kn

= n+nlgn = Θ(nlgn).

Conclusão:

(34)

Conferência

Paran potência de 2 e k= lgn,

T(n) = 2T(n/2) +n (e, deixamos implícito, T(1) =1) Afirmação: T(n) =n+nlgn.

Prova por indução emk, ondek = lgn.

Afirmação reescrita em termos dek: T(2k) =2k+k2k. Parak=0, temos queT(20) =T(1) =1=20+0·20. Parak≥1, suponha que T(2k−1) =2k−1+ (k−1)2k−1. EntãoT(2k) =2T(2k−1) +2k pela recorrência.

LogoT(2k) =2(2k−1+ (k−1)2k−1) +2k LogoT(2k)=2k + (k−1)2k +2k =2k +k2k.

(35)

Conferência

Paran potência de 2 e k= lgn,

T(n) = 2T(n/2) +n (e, deixamos implícito, T(1) =1) Afirmação: T(n) =n+nlgn.

Prova por indução emk, ondek = lgn.

Afirmação reescrita em termos dek: T(2k) =2k+k2k. Parak=0, temos queT(20) =T(1) =1=20+0·20. Parak≥1, suponha que T(2k−1) =2k−1+ (k−1)2k−1. EntãoT(2k) =2T(2k−1) +2k pela recorrência.

LogoT(2k) =2(2k−1+ (k−1)2k−1) +2k LogoT(2k)=2k + (k−1)2k +2k =2k +k2k.

(36)

Conferência

Paran potência de 2 e k= lgn,

T(n) = 2T(n/2) +n (e, deixamos implícito, T(1) =1) Afirmação: T(n) =n+nlgn.

Prova por indução emk, ondek = lgn.

Afirmação reescrita em termos dek: T(2k) =2k+k2k.

Parak=0, temos queT(20) =T(1) =1=20+0·20. Parak≥1, suponha que T(2k−1) =2k−1+ (k−1)2k−1. EntãoT(2k) =2T(2k−1) +2k pela recorrência.

LogoT(2k) =2(2k−1+ (k−1)2k−1) +2k LogoT(2k)=2k + (k−1)2k +2k =2k +k2k.

(37)

Conferência

Paran potência de 2 e k= lgn,

T(n) = 2T(n/2) +n (e, deixamos implícito, T(1) =1) Afirmação: T(n) =n+nlgn.

Prova por indução emk, ondek = lgn.

Afirmação reescrita em termos dek: T(2k) =2k+k2k.

0 0 · 0

Parak≥1, suponha que T(2k−1) =2k−1+ (k−1)2k−1. EntãoT(2k) =2T(2k−1) +2k pela recorrência.

LogoT(2k) =2(2k−1+ (k−1)2k−1) +2k LogoT(2k)=2k + (k−1)2k +2k =2k +k2k.

(38)

Conferência

Paran potência de 2 e k= lgn,

T(n) = 2T(n/2) +n (e, deixamos implícito, T(1) =1) Afirmação: T(n) =n+nlgn.

Prova por indução emk, ondek = lgn.

Afirmação reescrita em termos dek: T(2k) =2k+k2k. Parak=0, temos queT(20) =T(1) =1=20+0·20. Parak≥1, suponha que T(2k−1) =2k−1+ (k−1)2k−1.

EntãoT(2k) =2T(2k−1) +2k pela recorrência. LogoT(2k) =2(2k−1+ (k−1)2k−1) +2k LogoT(2k)=2k + (k−1)2k +2k =2k +k2k.

(39)

Conferência

Paran potência de 2 e k= lgn,

T(n) = 2T(n/2) +n (e, deixamos implícito, T(1) =1) Afirmação: T(n) =n+nlgn.

Prova por indução emk, ondek = lgn.

Afirmação reescrita em termos dek: T(2k) =2k+k2k. Parak=0, temos queT(20) =T(1) =1=20+0·20. Parak≥1, suponha que T(2k−1) =2k−1+ (k−1)2k−1. Então (2k 2 (2k−1 2k pela recorrência.

LogoT(2k) =2(2k−1+ (k−1)2k−1) +2k LogoT(2k)=2k + (k−1)2k +2k =2k +k2k.

(40)

Conferência

Paran potência de 2 e k= lgn,

T(n) = 2T(n/2) +n (e, deixamos implícito, T(1) =1) Afirmação: T(n) =n+nlgn.

Prova por indução emk, ondek = lgn.

Afirmação reescrita em termos dek: T(2k) =2k+k2k. Parak=0, temos queT(20) =T(1) =1=20+0·20. Parak≥1, suponha que T(2k−1) =2k−1+ (k−1)2k−1. EntãoT(2k) =2T(2k−1) +2k pela recorrência.

LogoT(2k) =2(2k−1+ (k−1)2k−1) +2k LogoT(2k)=2k + (k−1)2k +2k =2k +k2k.

(41)

Resolução de recorrências

I Substitua a notação assintótica por função da classe.

I Restrinja-se an potência de algo, se necessário.

I Estipule que na base o valor é 1.

I Use expansão ou árvore de recorrência para determinar um “chute” de solução.

I Confira se o chute está correto.

Exemplos:

I T(n) = T(bn/2c) + Θ(1) I T(n) = T(n−1) + Θ(n) I T(n) = 3T(bn/2c) + Θ(n) I T(n) = 2T(bn/2c) + Θ(n2)

(42)

Resolução de recorrências

I Substitua a notação assintótica por função da classe.

I Restrinja-se an potência de algo, se necessário.

I Estipule que na base o valor é 1.

I Use expansão ou árvore de recorrência para determinar um “chute” de solução.

I Confira se o chute está correto.

Exemplos:

I T(n) = T(bn/2c) + Θ(1) I T(n) = T(n−1) + Θ(n) I T(n) = 3T(bn/2c) + Θ(n) I T(n) = 2T(bn/2c) + Θ(n2)

(43)

Resolução de recorrências

T(n) = T(bn/2c) + Θ(1)

Versão simplificada da recorrência acima:

T(1) =1 e T(n) =T(n/2) +1 paran ≥2 potência de 2. Por expansão:

T(n) = T(n/2) +1

= T(n/22) +1

+1 = T(n/22) +2

= T(n/23) +1

+2 = T(n/23) +3

= T(n/24) +1

+3 = T(n/24) +4

= . . . = T(n/2k) +k para k= lgn

= T(1) + lgn = 1+ lgn = Θ(lgn).

(44)

Resolução de recorrências

T(n) = T(bn/2c) + Θ(1)

Versão simplificada da recorrência acima:

T(1) =1 e T(n) =T(n/2) +1 paran ≥2 potência de 2.

Por expansão:

T(n) = T(n/2) +1

= T(n/22) +1

+1 = T(n/22) +2

= T(n/23) +1

+2 = T(n/23) +3

= T(n/24) +1

+3 = T(n/24) +4

= . . . = T(n/2k) +k para k= lgn

= T(1) + lgn = 1+ lgn = Θ(lgn).

(45)

Resolução de recorrências

T(n) = T(bn/2c) + Θ(1)

Versão simplificada da recorrência acima:

T(1) =1 e T(n) =T(n/2) +1 paran ≥2 potência de 2.

Por expansão:

T(n) = T(n/2) +1

= T(n/22) +1

+1 = T(n/22) +2

= T(n/23) +1

+2 = T(n/23) +3

= T(n/24) +1

+3 = T(n/24) +4

= . . . = T(n/2k) +k para k= lgn

(46)

Resolução de recorrências

T(n) = T(n−1) + Θ(n)

Versão simplificada da recorrência acima:

T(1) =1 e T(n) = T(n−1) +n paran ≥2. Por expansão:

T(n) = T(n−1) +n

= T(n−2) + (n−1) +n

= T(n−3) + (n−2) + (n−1) +n

= T(n−4) + (n−3) + (n−2) + (n−1) +n

= . . . = T(1) +2+3+· · ·+ (n−2) + (n−1) +n

= 1+2+· · ·+ (n−1) + (n−2) +n = (n+1)n

2 = Θ(n2).

(47)

Resolução de recorrências

T(n) = T(n−1) + Θ(n) Versão simplificada da recorrência acima:

T(1) =1 e T(n) = T(n−1) +n paran ≥2.

Por expansão:

T(n) = T(n−1) +n

= T(n−2) + (n−1) +n

= T(n−3) + (n−2) + (n−1) +n

= T(n−4) + (n−3) + (n−2) + (n−1) +n

= . . . = T(1) +2+3+· · ·+ (n−2) + (n−1) +n

= 1+2+· · ·+ (n−1) + (n−2) +n = (n+1)n

2 = Θ(n2).

(48)

Resolução de recorrências

T(n) = T(n−1) + Θ(n) Versão simplificada da recorrência acima:

T(1) =1 e T(n) = T(n−1) +n paran ≥2.

Por expansão:

T(n) = T(n−1) +n

= T(n−2) + (n−1) +n

= T(n−3) + (n−2) + (n−1) +n

= T(n−4) + (n−3) + (n−2) + (n−1) +n

= . . . = T(1) +2+3+· · ·+ (n−2) + (n−1) +n

= 1+2+· · ·+ (n−1) + (n−2) +n = (n+1)n

2 = Θ(n2).

(49)

Resolução de recorrências

Por expansão:

T(n) = T(n−1) +n

= T(n−2) +(n−1) +n

= T(n−3) +(n−2) + (n−1) +n

= . . . = T(1) +2+3+· · ·+ (n−2) + (n−1) +n

= 1+2+· · ·+ (n−1) + (n−2) +n = (n+1)n

= Θ(n2).

Note que não temos restrição non neste caso. Só faça a conta quando

os termos que saem da recorrência são o mesmo

(como on na recorrência do Mergesort, e o 1 na anterior).

(50)

Resolução de recorrências

Por expansão:

T(n) = T(n−1) +n

= T(n−2) +(n−1) +n

= T(n−3) +(n−2) + (n−1) +n

= . . . = T(1) +2+3+· · ·+ (n−2) + (n−1) +n

= 1+2+· · ·+ (n−1) + (n−2) +n = (n+1)n

2 = Θ(n2).

Note que não temos restrição non neste caso.

Só faça a conta quando

os termos que saem da recorrência são o mesmo

(como on na recorrência do Mergesort, e o 1 na anterior).

(51)

T (n) = 3 T (bn/2c) + Θ(n)

Versão simplificada da recorrência acima:

T(1) =1

T(n) =3T(n/2) +n para n≥2 potência de 2.

Por expansão: T(n) = 3T n

2

+n

= 3 3T n 22

+n 2

+n = 32T n 22

+3

2n+n

= 32 3T n 23

+ n 22

+3

2n+n = 33T n 23

+ 3

2 2

n+3 2n+n

= 33 3T n 24

+ n 23

+ 3 2

2

n+3 2n+n

= 34T n 24

+ 3

2 3

n+ 3 2

2

n+3 2n+n

(52)

T (n) = 3 T (bn/2c) + Θ(n)

Versão simplificada da recorrência acima:

T(1) =1

T(n) =3T(n/2) +n para n≥2 potência de 2.

Por expansão:

T(n) = 3T n 2

+n

= 3 3T n 22

+n 2

+n = 32T n 22

+3

2n+n

= 32 3T n 23

+ n 22

+ 3

2n+n = 33T n 23

+ 3

2 2

n+3 2n+n

Por expansão: T(n) = 3T n

2

+n

= 3 3T n 22

+n 2

+n = 32T n 22

+3

2n+n

= 32 3T n 23

+ n 22

+3

2n+n = 33T n 23

+ 3

2 2

n+3 2n+n

= 33 3T n 24

+ n 23

+ 3 2

2

n+3 2n+n

= 34T n 24

+ 3

2 3

n+ 3 2

2

n+3 2n+n

(53)

T (n) = 3 T (bn/2c) + Θ(n)

Versão simplificada da recorrência acima:

T(1) =1

T(n) =3T(n/2) +n para n≥2 potência de 2.

Por expansão:

T(n) = 3T n 2

+n

= 3 3T n 22

+n 2

+n = 32T n 22

+3

2n+n

= 32 3T n 23

+ n 22

+ 3

2n+n = 33T n 23

+ 3

2 2

n+3 2n+n

= 33 3T n 24

+ n 23

+ 3 2

2

n+3 2n+n

= 34T n

4

+ 33

n+ 32

n+3 n+n

(54)

T (n) = 3 T (bn/2c) + Θ(n)

Por expansão:

T(n) = 3T(n

2) +n = 32T(n 22) +3

2n+n

= 33T( n 23) + (3

2)2n+3 2n+n

= 34T( n 24) + (3

2)3n+ (3

2)2n+3 2n+n

= . . . = 3kT( n 2k) + (3

2)k−1n+· · ·+3

2n+n parak = lgn 3lgnT(1) +

lgn−1

X

i=0

(3 2)i

n

3lgn+ (32)lgn−1

3 2 −1

n = 3lgn+2 (3

2)lgn−1 n

T(n) = 3T(n

2) +n = 32T(n 22) +3

2n+n

= 33T( n 23) + (3

2)2n+3 2n+n

= 34T( n 24) + (3

2)3n+ (3

2)2n+3 2n+n

= . . . = 3kT( n 2k) + (3

2)k−1n+· · ·+3

2n+n parak = lgn

= 3lgnT(1) +

lgn−1

X

i=0

3 2

n

= 3lgn+ (32)lgn−1

3 2 −1

n = 3lgn+2 3 2

lgn

−1 n

(55)

T (n) = 3 T (bn/2c) + Θ(n)

Por expansão:

T(n) = 3T(n

2) +n = 32T(n 22) +3

2n+n

= 33T( n 23) + (3

2)2n+3 2n+n

= 34T( n 24) + (3

2)3n+ (3

2)2n+3 2n+n

= . . . = 3kT( n 2k) + (3

2)k−1n+· · ·+3

2n+n parak = lgn

= 3lgnT(1) +

lgn−1

X

i=0

3 2

n

= 3lgn+ (32)lgn−1

3 −1

n = 3lgn+2 3 2

lgn

−1 n

(56)

T (n) = 3 T (bn/2c) + Θ(n)

T(n) = 3T(n

2) +n = 32T(n 22) +3

2n+n

= . . . = 3kT( n 2k) + (3

2)k−1n+· · ·+3

2n+n parak = lgn

= 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1 n

= 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n

T(n) = 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1

n = 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n

= 3lgn+2 3lgn−2n

= 3 3lgn−2n

= 3 2lgnlg3

−2n

= 3nlg3−2n

= Θ(nlg3).

(57)

T (n) = 3 T (bn/2c) + Θ(n)

T(n) = 3T(n

2) +n = 32T(n 22) +3

2n+n

= . . . = 3kT( n 2k) + (3

2)k−1n+· · ·+3

2n+n parak = lgn

= 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1 n

= 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n 3lgn 2 3lgn−2n

T(n) = 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1

n = 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n

= 3lgn+2 3lgn−2n

= 3 3lgn−2n

= 3 2lgnlg3

−2n

= 3nlg3−2n

= Θ(nlg3).

(58)

T (n) = 3 T (bn/2c) + Θ(n)

T(n) = 3T(n

2) +n = 32T(n 22) +3

2n+n

= . . . = 3kT( n 2k) + (3

2)k−1n+· · ·+3

2n+n parak = lgn

= 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1

n = 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n

= 3lgn+2 3lgn−2n

= 3 3lgn−2n

T(n) = 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1

n = 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n

= 3lgn+2 3lgn−2n

= 3 3lgn−2n

= 3 2lgnlg3

−2n

= 3nlg3−2n

= Θ(nlg3).

(59)

T (n) = 3 T (bn/2c) + Θ(n)

T(n) = 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1

n = 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n

= 3lgn+2 3lgn−2n 3 3lgn−2n

T(n) = 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1

n = 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n

= 3lgn+2 3lgn−2n

= 3 3lgn−2n

= 3 2lgnlg3

−2n

= 3nlg3−2n

= Θ(nlg3).

(60)

T (n) = 3 T (bn/2c) + Θ(n)

T(n) = 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1

n = 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n

= 3lgn+2 3lgn−2n

= 3 3lgn−2n

= 3 2lg3lgn

−2n

T(n) = 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1

n = 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n

= 3lgn+2 3lgn−2n

= 3 3lgn−2n

= 3 2lgnlg3

−2n

= 3nlg3−2n

= Θ(nlg3).

(61)

T (n) = 3 T (bn/2c) + Θ(n)

T(n) = 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1

n = 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n

= 3lgn+2 3lgn−2n

= 3 3lgn−2n

= 3 2lgnlg3

−2n

lg3

T(n) = 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1

n = 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n

= 3lgn+2 3lgn−2n

= 3 3lgn−2n

= 3 2lgnlg3

−2n

= 3nlg3−2n

= Θ(nlg3).

(62)

T (n) = 3 T (bn/2c) + Θ(n)

T(n) = 3lgnT(1) +

lgn−1

X

i=0

3 2

n = 3lgn+ (32)lgn−1

3 2 −1

n

= 3lgn+2 (3

2)lgn−1

n = 3lgn+2 3lgn n −1

n

= 3lgn+2 3lgn−n

= 3lgn+2 3lgn−2n

= 3 3lgn−2n

= 3 2lgnlg3

−2n

= 3nlg3−2n

= Θ(nlg3).

(63)

Resolução de recorrências

T(n) = 2T(bn/2c) + Θ(n2)

Você consegue resolver?

Exercício!

(64)

Resolução de recorrências

T(n) = 2T(bn/2c) + Θ(n2)

Você consegue resolver?

Exercício!

(65)

Resolução de recorrências

T(n) = 2T(bn/2c) + Θ(n2)

Você consegue resolver?

Exercício!

Referências

Documentos relacionados

O tratamento com isoproterenol promoveu a translocação do cotransportador SGLT1 do citoplasma para a membrana luminal de pneumócitos de animais normoglicêmicos e diabéticos..

ensino superior como um todo e para o curso específico; desenho do projeto: a identidade da educação a distância; equipe profissional multidisciplinar;comunicação/interatividade

Assim, o objetivo deste estudo foi avaliar os efeitos da dieta cetogênica associada à inalação do monoterpeno álcool perílico no crescimento do

Este galardão, atribuído pela Associação Europeia das cidades e capitais do Desporto tem como objetivo essencial a dinamização do Princípio de Desporto para Todos,

Portanto, os níveis de adesão aos pressupostos das escolas de estratégia foram confirmados por dois critérios: ranking médio, calculado com a ferramenta excel seguindo a

Resultados computacionais obtidos com instâncias da literatura mostram que o método proposto é capaz de resolver instâncias com até 125 elementos, sendo mais eficiente que o

Baseado no papel desempenhado pelos elementos fósforo e nitrogênio no desenvolvimento das algas e cianobactérias nos sistemas aquáticos bem como da relação existente entre o processo

Estas y otras preguntas hacen que la comunidad negra y el teólogo negro y la teóloga negra deben detener su atención y compromiso en una nueva reflexión teológica y una nueva