09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

18.4.<br />

Útiles matemáticos 421<br />

conocido x0. Mediante el cambio de variable n = c k t<strong>en</strong>emos:<br />

xn = Expr(n, x n/c)<br />

= Expr(c k , x c k /c)<br />

x c k = Expr(c k , x c k−1)<br />

Si ahora llamamos a la sucesión x c k = yk, t<strong>en</strong>emos:<br />

y0 = x0<br />

yk = x c k<br />

= Expr(c k , yk−1)<br />

que es lineal de primer ord<strong>en</strong>. Una vez resuelta, se ti<strong>en</strong>e que<br />

xn = ylog c n<br />

Como ejemplo de este tipo de recurr<strong>en</strong>cias, considérese el coste del algoritmo<br />

de ord<strong>en</strong>ación por mezcla:<br />

<br />

k1<br />

si n = 1<br />

T (n) =<br />

2T ( n<br />

2 ) + k2n + k3 si n > 1<br />

Como su resolución sigue al pie de la letra el procedimi<strong>en</strong>to descrito, se deja<br />

como ejercicio al lector. La solución puede compararse con la ofrecida <strong>en</strong> 18.3.2.<br />

18.4.3 Sucesiones de recurr<strong>en</strong>cia de ord<strong>en</strong> superior<br />

Son las sucesiones g<strong>en</strong>eradas por subprogramas recursivos con más de una<br />

llamada recursiva: 10<br />

xn = f(xn1 , xn2 , . . . , xnk , n)<br />

La resolución exacta de este tipo de recurr<strong>en</strong>cias sobrepasa las pret<strong>en</strong>siones<br />

de esta introducción a la complejidad algorítmica. Sin embargo, con frecu<strong>en</strong>cia<br />

es posible y sufici<strong>en</strong>te acotar dicho coste. En efecto, es frecu<strong>en</strong>te que la sucesión<br />

xi sea creci<strong>en</strong>te y que <strong>en</strong>tre los tamaños de las llamadas subsidiarias se puedan<br />

id<strong>en</strong>tificar el mínimo y el máximo y <strong>en</strong> g<strong>en</strong>eral. Si llamamos xmín y xmáx<br />

respectivam<strong>en</strong>te a estos valores <strong>en</strong> la sucesión anterior, se ti<strong>en</strong>e que<br />

<br />

k<br />

<br />

<br />

k<br />

xmín + f(n) ≤ xn ≤<br />

<br />

xmáx + f(n)<br />

i=1<br />

ai<br />

Esta desigualdad nos da siempre las acotaciones Θ y O y, cuando coincidan<br />

ambas, t<strong>en</strong>dremos el ord<strong>en</strong> Θ.<br />

10 Las distintas llamadas son xni .<br />

i=1<br />

ai

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!