CapÃtulo 3 Complejidad de algoritmos recursivos ⩠⨠⧠= > â = 0 1 0 ...
CapÃtulo 3 Complejidad de algoritmos recursivos ⩠⨠⧠= > â = 0 1 0 ...
CapÃtulo 3 Complejidad de algoritmos recursivos ⩠⨠⧠= > â = 0 1 0 ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Instituto Tecnológico <strong>de</strong> Ciudad Ma<strong>de</strong>ro<br />
Dra. Laura Cruz Reyes<br />
Unidad I COMPLEJIDAD DE ALGORITMOS<br />
Capítulo 3 <strong>Complejidad</strong> <strong>de</strong> <strong>algoritmos</strong> <strong>recursivos</strong><br />
Primero se generan cuatro recurrencias para tamaños <strong>de</strong> problema consecutivos.<br />
( ) = + 2 (<br />
n<br />
2)<br />
(<br />
n n<br />
) = + 2T( n<br />
2 4)<br />
2<br />
(<br />
n n<br />
) = + 2T<br />
4 (<br />
n<br />
8)<br />
4<br />
n<br />
(<br />
n<br />
) = + 2T( n<br />
)<br />
T n n T<br />
T<br />
T<br />
T<br />
8 8 16<br />
Enseguida se usan las recurrencias <strong>de</strong> anteriores para hacer la expansión <strong>de</strong> la recurrencia<br />
original.<br />
( ) = + 2n<br />
+ 2⋅2<br />
(<br />
n<br />
2 4)<br />
( ) = + 2n + 2⋅ 2n + 2⋅2⋅2<br />
2 4 (<br />
n<br />
8)<br />
( ) = + 2n + 22 ⋅ n + 222 ⋅ ⋅ n + 2222 ⋅ ⋅ ⋅ (<br />
n<br />
)<br />
Tn n T<br />
T n n T<br />
T n n T<br />
2 4 8 16<br />
( ) = + 2 ( )<br />
1 n 2 3 4<br />
1+ 2 n<br />
2 + 2 n<br />
3+<br />
2 n<br />
4<br />
T n n T<br />
2 2 2 2<br />
Dado que se <strong>de</strong>sconoce en cuántos términos la función T(n) <strong>de</strong>be ser expandida para<br />
alcanzar el caso base, se usará el índice m para hacer referencia al término correspondiente a<br />
la condición <strong>de</strong> paro.<br />
[ ]<br />
1 2 3<br />
Tn ( ) = ⎡n 2 n<br />
1 2 n<br />
2 2 n<br />
3 ... término ⎤<br />
⎢<br />
+ + + + +<br />
m−1<br />
+ términom<br />
⎣ 2 2 2 ⎥⎦<br />
Se forma una sumatoria cuyo patrón <strong>de</strong> regularidad es 2 i i<br />
( /2 )<br />
n con i= 0…m-1. Posterior a<br />
esta sumatoria sigue el término <strong>de</strong> paro, cuyo coeficiente y tamaño <strong>de</strong> problema siguen un<br />
patrón similar con i=m.<br />
m−1<br />
i=<br />
0<br />
n<br />
m n<br />
( m−1) T( m−1)<br />
m<br />
( m−<br />
) ( m−<br />
)<br />
1 2 3 1<br />
( ) 2 n<br />
1 2 n<br />
2 2 n m−<br />
Tn= ⎡n+ + + 3+ ... + 2 n ⎤<br />
1 + ⎡2<br />
T n ⎤<br />
1<br />
⎢⎣ 2 2 2 2 ⎥⎦ ⎢⎣ 2 ⎥⎦<br />
∑<br />
i<br />
Tn ( ) = 2 + 2<br />
2 2<br />
La sumatoria se simplifica al consi<strong>de</strong>rar que el último termino correspon<strong>de</strong> al caso base con<br />
n=1 y T(1)=1.<br />
n n<br />
( i) ( m−1<br />
) ()<br />
m−1 m−1 m−1<br />
i m m m<br />
∑ ∑ ∑<br />
Tn ( ) = 2 + 2 T = n+ 2 T1 = n+<br />
2<br />
2 2<br />
i= 0 i= 0 i=<br />
0<br />
Encontramos el valor <strong>de</strong> m igualando las dos condiciones <strong>de</strong> paro.