Você está na página 1de 12

Instituto Politcnico

Nacional.
Escuela Superior de
Cmputo.
Unidad de Aprendizaje:
Anlisis de algoritmos.
Titular:
Edgardo Adrin Franco Martnez.
Grupo:
3CM5.
Alumno:
Antonio David Reyna Martnez.
Ejercicios 04:
Anlisis de Algoritmos Recursivos.

Anlisis de algoritmos. Pgina 2 de 12


Ejercicios 04: Anlisis de Algoritmos Recursivos.
Antonio David Reyna Martnez.
3CM5.
1. Calcular la complejidad para el algoritmo para el clculo del factorial
recursivo.

T ( n ) =2+T ( n1 )+ T ( n2 )+T (n3)

Costo de llamar a
Costo de la
Costo de llamar a
FuncionRecursiva(nummultiplicacin ms
FuncionRecursiva(num3).
costo de la divisin.
2).
Costo de llamar a
FuncionRecursiva(num1).

Reordenando la ecuacin, tenemos:

T ( n ) T ( n1 )T ( n2 )T ( n3 )=2 ; n 3
k =3 b=2 d=0
3

x =T ( n )

( x 3x 2x1 ) ( x2 )=0
x 1=1.8393, x 2=1.8393, x3 =1.8393, x 4 =2
n

T ( n ) =C1 1.8393 +C2 n 1.8393 +C 3 n 1.8393 +C 4 2


Sean las condiciones iniciales:

T ( 0 ) =1
T ( 1 )=1

Anlisis de algoritmos. Pgina 3 de 12


Ejercicios 04: Anlisis de Algoritmos Recursivos.
Antonio David Reyna Martnez.
3CM5.
T ( 2 )=4
T ( 3 ) =6
0

T ( 0 ) =C1 1.8393 +C2 ( 0 ) 1.8393 +C 3 ( 0 ) 1.8393 +C 4 2 =C 1+C 4 =1

T ( 1 )=C 1 1.8393+C 2 1.8393 +C 3 1.8393+C 4 2=1.8393 ( C 1+C 2+ C3 ) +2 C 4=1

T ( 2 )=C 1 1.83932 +C 2 ( 2 ) 1.83932 +C 3 ( 2 )2 1.83932+ C 4 22=4


3

T ( 3 ) =C1 1.8393 +C 2 ( 3 ) 1.8393 +C3 ( 3 ) 1.8393 + C4 2 =6


Si

C1

C2

C3

C4

son distintos de 0 se tiene

O(cn )

2. Calcular la complejidad de la implementacin recursiva del termino n de la


serie de Tribonacci (0, 1, 1, 2, 4, 7, 13, 24, 44, 81, 149, 274, 504, 927, 1705, ...)

T ( n ) =2+T ( n1 )+ T ( n2 )+T (n3)

Costo de las dos


sumas.

Costo de llamar a
Tribonacci(num-2).
Costo de llamar a
Tribonacci(num-1).

Reordenando la ecuacin, tenemos:

T ( n ) T ( n1 )T ( n2 )T ( n3 )=2 ; n 3

Costo de llamar a
Tribonacci(num-3).

Anlisis de algoritmos. Pgina 4 de 12


Ejercicios 04: Anlisis de Algoritmos Recursivos.
Antonio David Reyna Martnez.
3CM5.
k =3 b=2 d=0

x 3=T ( n )

( x 3x 2x1 ) ( x2 )=0
x 1=1.8393, x 2=1.8393, x3 =1.8393, x 4 =2
n

T ( n ) =C1 1.8393 +C2 n 1.8393 +C 3 n 1.8393 +C 4 2


Sean las condiciones iniciales:

T ( 0 ) =1
T ( 1 )=1
T ( 2 )=1
T ( 3 ) =5
0

T ( 0 ) =C1 1.8393 +C2 ( 0 ) 1.8393 +C 3 ( 0 ) 1.8393 +C 4 2 =C 1+C 4 =1

T ( 1 )=C 1 1.8393+C 2 1.8393 +C 3 1.8393+C 4 2=1.8393 ( C 1+C 2+ C3 ) +2 C 4=1

T ( 2 )=C 1 1.83932 +C 2 ( 2 ) 1.83932 +C 3 ( 2 )2 1.83932+ C 4 22=1


3

T ( 3 ) =C1 1.8393 +C 2 ( 3 ) 1.8393 +C3 ( 3 ) 1.8393 + C4 2 =5


Si

C1

C2

C3

C4

son distintos de 0 se tiene

O(cn )

3. Resolver las siguientes ecuaciones y dar su orden de complejidad:

T ( n ) =3 T ( n1 )+ 4 T ( n2 ) si n>1 ;

T ( 0 ) =0 ;T ( 1 )=1

Anlisis de algoritmos. Pgina 5 de 12


Ejercicios 04: Anlisis de Algoritmos Recursivos.
Antonio David Reyna Martnez.
3CM5.
Reordenando trminos:

T ( n ) 3 T ( n1 )4 T ( n2 )=0
k =2 es decir

Sea

x 2=T (n) tenemos:

x 23 x4=0

( x4 ) ( x +1 ) =0
r 1=4 ; r 2=1
T ( n ) =C1 4 n +C2 (1 )n
0

T ( 0 ) =C1 4 +C2 (1 ) =C1 +C 2=0

T ( 1 )=C 1 41 +C 2 (1 )1=4 C1C 2=1


Resolviendo el sistema de ecuaciones:
Si

C1 =C 2 entonces

5 C1=1

es decir

C1 =

1
5

n
4
T ( n ) =
5

T ( n ) =2T ( n1 ) ( n+5 ) 3n si n>0 ; T ( 0 )=0


Reordenando trminos:

T ( n ) 2T ( n1 ) =( n+ 5 ) 3

Sea k=1, b=3 y d =1, es decir

( x2 ) ( x 3 )2=0

x=T (n) tenemos:

C2 =

1
5

Anlisis de algoritmos. Pgina 6 de 12


Ejercicios 04: Anlisis de Algoritmos Recursivos.
Antonio David Reyna Martnez.
3CM5.
r 1=2 ; r 2=3 ; r 3 =3
T ( n ) =C1 2n +C2 3n +C 3 n 3n
Sea:

T ( 0 ) =0
T ( 1 )=2 ( 0 ) ( 1+ 5 ) 3 1=18
2
T ( 2 )=2 (18 )( 2+5 ) 3 =99

Observacin: Como podemos notar, esta funcin es montonamente


decreciente, por lo que no puede representar una funcin de
complejidad.

T ( n ) =2T ( n1 ) + ( n+ 5 ) 3 n sin> 0 ; T ( 0 )=0


Reordenando trminos:

T ( n ) 2T ( n1 ) =( n+5 ) 3n
Sea k=1, b=3 y d =1, es decir

( x2 ) ( x 3 )2=0
r 1=2 ; r 2=3 ; r 3 =3
T ( n ) =C1 2n +C2 3n +C 3 n 3n
Sea:

T ( 0 ) =0
T ( 1 )=2 ( 0 ) + ( 1+5 ) 31=18
2

T ( 2 )=2 ( 18 ) + ( 2+5 ) 3 =99


Tenemos que:

C1 +C 2=0
2C 1 +3 C2 +3 C3 =18
4 C 1 +9 C2 +18 C 3=99
Resolviendo el sistema:

C1 =C 2
2 C 2+3 C 2+ 3C 3=18

x=T (n) tenemos:

Anlisis de algoritmos. Pgina 7 de 12


Ejercicios 04: Anlisis de Algoritmos Recursivos.
Antonio David Reyna Martnez.
3CM5.
C2 +3 C 3=18

es decir

4 C 2+ 9C 2 +18 6

C3 =6

C2
3

C2
=99
3

C2 (4+ 96 )=99108
9
C2 =9 ; C1=9 ; C 3=6 =3
3
T ( n ) =(9 ) 2n + ( 9 ) 3 n+ (3 ) n 3 n O(n 3n+1 )

T ( n ) =3 T ( n1 )+ 4 T ( n2 ) + ( n+5 ) 2n si n>1 ; T ( 0 ) =0,T ( 1 )=100


Reacomodando trminos:
n
T ( n ) 3 T ( n1 )4 T ( n2 )=( n+5 ) 2

Sea k=2, b=2, d=1, es decir

x 2=T ( n )

x
2
( 23 x4)(x2) =0

( x4 ) ( x +1 ) ( x2 )2=0
r 1=4 ; r 2=1 ; r 3=2 ; r 4 =2
n

T ( n ) =C1 4 +C2 (1) +C 3 2 + C4 n 2


Sea:

T ( 0 ) =0
T ( 1 )=100
T ( 2 )=3 ( 100 ) + 4 ( 0 ) + ( 2+5 ) 22=328
T ( 3 ) =3 ( 328 )+ 4 ( 10 0 ) + ( 3+5 ) 23=144 8
Tenemos que:

C1 +C 2+ C3=0

tenemos:

Anlisis de algoritmos. Pgina 8 de 12


Ejercicios 04: Anlisis de Algoritmos Recursivos.
Antonio David Reyna Martnez.
3CM5.
4 C 1C 2+ 2C 3 +2C 4 =1 00
16 C1 +C 2+ 4 C 3+ 8 C4 =328
64 C 1C2 +8 C 3 +16 C4 =1448
Resolviendo el sistema por Gauss Jordan:
1
4
16
64

1
-1
1
-1

1
0
0
0

1
2
4
8

1
-5
-15
-65

1
-2
-12
-56

0
2
8
16

0
100
328
1448

0
2
8
16

0
100
328
1448

0.4

-0.4

-20

-15

-12

328

-65

-56

16

0.6

0.4

20

0.4

-0.4

-20

-6

28

-30

-10

1448

148

0.6

0.4

20

0.4

-0.4

-20

-1/3

-14/3

-30

-10

148

0.6

114/5

-4/15

-272/15

-1/3

-14/3

-20

0.6

114.5

Anlisis de algoritmos. Pgina 9 de 12


Ejercicios 04: Anlisis de Algoritmos Recursivos.
Antonio David Reyna Martnez.
3CM5.
0

-4/15

-272/15

-1/3

-14/3

576/25

-456/25

-24/5

-2/5

C1 =

T ( n) =

-2/5

576
456
24
2
; C 2=
; C3 =
=3 ; C 4 =
25
25
5
5

576 n 456
24
2
4
(1 )n 2n C 4 n 2n O(4n )
25
25
5
5

T ( n ) 2T ( n1 ) =3n si n 2 ; T ( 0 ) =0 ; T ( 1 )=1
Sea k=1, b=3 y d =0, es decir

( x2 ) (x3)=0
r 1=2 ; r 2=3 ;
T ( n ) =C1 2n +C2 3n
Sea:

T ( 0 ) =0
T ( 1 )=1
Tenemos que:

C1 +C 2=0

x=T (n)

tenemos:

Anlisis de algoritmos. Pgina 10 de 12


Ejercicios 04: Anlisis de Algoritmos Recursivos.
Antonio David Reyna Martnez.
3CM5.
2C 1 +3 C2=1
Resolviendo el sistema:

C1 =C 2
2 C 2+3 C 2=1
C2 =1
C1 =1
n

T ( n ) =(1 ) 2 +3 O(3 )
4. Calcular la cota de complejidad del algoritmo de bsqueda binaria recursiva
(Ejemplo 04).

T ( n ) =3+T

( n2 )

T ( 0 ) =0

Sea a=1, b=2,c=0,

Basndonos en que si

T ( n ) = ( nlog a lgn )
b

T ( n ) =(lg n)

f ( n )=3=3 n 0 n log a =nlog 1=n0 =1


b

f ( n )= ( nlog a ) donde
b

c=log b a entonces

Anlisis de algoritmos. Pgina 11 de 12


Ejercicios 04: Anlisis de Algoritmos Recursivos.
Antonio David Reyna Martnez.
3CM5.

5. Calcular la cota de complejidad del algoritmo Merge Sort recursivo (Ejemplo


05).

T ( n ) =2T

( n2 )+ n

T ( 1 )=1

Sea a=2, b=2, c=1,

Basndonos en que si

T ( n ) = ( nlog a lgn )
b

T ( n ) =(n lg n)

f ( n )=n nlog a=n log 2=n1=n


b

f ( n )= ( nlog a ) donde
b

c=log b a entonces

Anlisis de algoritmos. Pgina 12 de 12


Ejercicios 04: Anlisis de Algoritmos Recursivos.
Antonio David Reyna Martnez.
3CM5.

Você também pode gostar