Está en la página 1de 3

Algoritmos y Estructuras de Datos Avanzadas

*
Tarea
1.

Tema: Anlisis de algoritmos

Profesor: Pedro A. Rodrguez


23 de septiembre de 2014

1.

Problema 1.
Teorema (Teorema Maestro): Sea T(n) una funcin eventualmente no decreciente que satisface la
recurrencia:

T (n)

aT ( nb )

donde a

f (n), T (1)

1, b

2, c

>

0. Si

c, n

bk , k

= 1,2,...

f (n) (nd ),

0, entonces:

(nd )

(nd logn)
T (n) =

(nlogb a )

si a <b
si a =

bd

si a >b

Se pide demostrar este teorema para los tres casos, es decir, para a <b , a >b , y a =
=

. Si desenrrollamos la ecuacin

T (n)

n
= aT ( ) +
b

f (n)

lo siguiente:

logb n
T(n) =

logb a

X bjd
]
aj
j=1

[T(1) +

logb n
=

logb a

[T(1) +

X bd
( )j ]
a
j=1

Tambin sabemos que:

n
X

(c)j =

cn+1 1
c1

ccn 1
c1 ; si

c 6= 1

j=1
Entonces:

logb n

(bd /a)j

= (b

/a)

(bd /a)logb n 1
; si
bd /a1

bd 6= a

j=1
Por otro lado:

logb n

(bd /a)j

logb n,

si

bd = a

j=1

* Tarea individual.

bd , cuando f (n)

usando substitucin backward, obtenemos

Entonces, si

a < bd ,

logb n

X bd
( )j
a
j=1

= (b

/a)

tenemos que

(bd /a)logb n 1
bd /a1

bd /a > 1,

y por lo tanto:

((bd /a)logb n )

Desde aqu, entonces podemos concluir que:

logb n

(bd /a)j nlogb a ((bd /a)logb n )

T (n)

nlogb a [T(1)

T (n)

(nlogb a (bd /a)logb n )

T (n)

(bd logb n )

(blogb n

T (n)

(nd )

j=1

T (n)

(alogb n (bd /a)logb n )


d

) =

((a ba )logb n )

((bd )logb n )

((nd )logb b )

Se pide entonces demostrar el teorema para los otros dos casos:

logb a
1.

a > bd , tenemos
1
= O(1).
bd
1

2.

2.

que

bd /a < 1,

entonces si tenemos

X bd
( )j
a
j=1

logb a
y

bd
a <1

bd

<a

X bd
( )j
a
j=1

a = bd ,

tenemos que

bd /a = 1.

Problema 2.
Para el siguiente algoritmo recursivo:

Algorithm 1

S(int n)

1: Input: n: entero > 0.


2: Output:
3: if ( n == 1 ) then
4:
return 1;
5: else
6:
return S(n-1) + nnn;
7: end if

1. Construir y resolver la ecuacin de recurrencia para obtener la frmula que indica el nmero de
veces que el algoritmo ejecuta la operacin bsica.
2. Indique qu complejidad temporal tiene el algoritmo en el peor caso.

3.

Problema 3.

a y b, de largos n y m, respectivamente. Decimos que b es una


a, si todos los elementos de b aparecen en el mismo orden en a. Disee un algoritmo no
tiempo O(n) para determinar si b es una subsecuencia de a. Demuestre matemticamente

Suponga que tiene dos strings


subsecuencia de
recursivo de

que su algoritmo es

O(n).

4.

Problema 4.
Para la siguiente ecuacin de recurrencia:

T (n) = 5T ( n5 )

n, T (0) = 0, T (1) = 1

Resuelva esta ecuacin usando substitucin de variables y si es necesario usando algn otro mtodo
adicional visto en clases. Determine adems la complejidad de esta ecuacin. Compruebe nalmente su
resultado usando el Teorema Maestro.

5.

Plazo de entrega de la Tarea.


Para el da Viernes 10 de Octubre de 2014 hasta las 23:59 hrs. La tarea debe ser enviada al

correo electrnico del profesor


El subject debe decir

(prodrigu@ubiobio.cl),

con el nombre del alumno en el mismo e-mail.

Entrega Tarea 1 de Algoritmos y Estructuras de Datos Avanzadas.

También podría gustarte