Sie sind auf Seite 1von 7

Anlisis de algoritmos recursivos a

Generalmente, nos bastar con clasicar la funcin recurrente en una a o notacin asinttica. o o

ww

Cuando analizamos algoritmos recursivos es util describir la funcin de o coste como una recurrencia. Una recurrencia es una ecuacin que describe una funcin en trminos del o o e propio valor de la funcin para argumentos ms cercanos a algn caso o a u bsico, para el que la funcin est denida expl a o a citamente. Resolver una recurrencia signica encontrar la expresin expl o cita que dene la funcin recurrente. o
w.

at em

at

ic

a1

.c

om

Resolucin de recurrencias mediante la tcnica de o e expansin (1/2) o


Ejemplo: Dada la recurrencia T (n) = a si n 1 T (n/2) + b si n > 1
at em at ic a1
.c om

Repita la sustitucin correspondiente alguna vez ms, hasta que sea o a capaz de adivinar un expresin patrn que generalice todas las o o sustituciones sucesivas. As : T (n) = T (n/22 ) + b + b = T (n/23 ) + b + b + b = . . . = T (n/2i ) + ib

ww

Sustituya cada aparicin del valor de la funcin por la expresin o o o especicada por la recurrencia. De T (n/2) = T (n/22 ) + b obtenemos T (n) = T (n/22 ) + b + b
w.

Resolucin de recurrencias mediante la tcnica de o e expansin (2/2) o

Sustituya i por su valor y obtendr una expresin. a o i ) + ib = T (1) + b lg n = a + b lg n As T (n) = T (n/2 : 2 2 Para ser rigurosos, deber demostrarse por induccin que esa es la a o solucin. o
ww w.

at em

at

Lleve el argumento de la funcin hasta algn caso bsico y calcule o u a as el valor de i. As n/2i = 1 entonces i = lg2 n :
ic a1
.c om

Resolucin de recurrencias lineales: mtodo de la o e ecuacin caracter o stica (1/2)


Las recurrencias lineales homogneas son de la forma e an T (n) + an1 T (n 1) + . . . + ank T (n k) = 0
a1

e y las recurrencias lineales no homogneas de la forma


at em

an T (n) + an1 T (n 1) + . . . + ank T (n k) = b n p(n) siendo p(n) un polinomio en n.


ww w.

ces o En ambos casos, lo primero es calcular las ra de la ecuacin caracter stica an x k + an1 x k1 + . . . + ank = 0

at

ic

.c

om

Resolucin de recurrencias lineales: mtodo de la o e ecuacin caracter o stica (2/2)


Supongamos que las ra son: r1 , . . . , rk . ces Entonces la solucin de la recurrencia es de la forma o
n n T (n) = c1 r1 + . . . + ck rk

Para las recurrencias no homogneas, adems aparece la ra b (de la parte e a z derecha de la ecuacin) con multiplicidad d + 1 siendo d el grado del o polinomio p(n). Cuando hay una ra mltiple rj , de multiplicidad m, entonces en la z u solucin deben aparecer los sumandos siguientes: o . . . + d0 rjn + d1 nrjn + d2 n2 rjn . . . + dm1 nm1 rjn
ww w.

at em

at

Para encontrar los valores de las constantes c1 , . . . , ck hay que establecer un sistema de ecuaciones con k casos particulares.
ic a1
.c om

Recurrencias t picas del anlisis de algoritmos recursivos a (1/2)

Teorema Si siendo a, c y k constantes con c 1 y k 0, entonces si a < 1 (nk ) k+1 ) si a = 1 (n T (n) = (an/c ) si a > 1
ww w.

at em

at

ic

a1

T (n) = a T (n c) + (nk )
.c om

Recurrencias t picas del anlisis de algoritmos recursivos a (2/2)

Teorema Si siendo a, b y k constantes con b > 1 y k 0, entonces si a < b k (nk ) (nk lg n) si a = b k T (n) = (nlgb a ) si a > b k
ww w.

at em

at

ic

a1

T (n) = a T (n/b) + (nk )


.c om

Das könnte Ihnen auch gefallen