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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

422 Capítulo 18. Complejidad algorítmica<br />

Ejemplo: sucesión de Fibonacci<br />

En su definición recursiva usual, esta función ti<strong>en</strong>e un coste dado por la<br />

sigui<strong>en</strong>te relación de recurr<strong>en</strong>cia:<br />

tn = k1 si k = 0 o k = 1<br />

tn = xn−1 + xn−2 + k2 si k ≥ 0<br />

Como t es creci<strong>en</strong>te, podemos acotarla <strong>en</strong>tre f y g, así:<br />

fn = k1 si k = 0 o k = 1<br />

fn = 2fn−2 + k2 si k ≥ 0<br />

gn = k1 si k = 0 o k = 1<br />

gn = 2gn−1 + k2 si k ≥ 0<br />

Estas dos relaciones de recurr<strong>en</strong>cia son lineales, y se resuelv<strong>en</strong> fácilm<strong>en</strong>te:<br />

fn ∈ Θ(2 n/2 )gn ∈ Θ(2 n )<br />

por lo que podemos concluir que la función analizada ti<strong>en</strong>e un coste <strong>en</strong> tiempo<br />

expon<strong>en</strong>cial tn = k n , para una constante k sin determinar, <strong>en</strong>tre √ 2 y 2.<br />

18.5 Ejercicios<br />

1. Considere las sigui<strong>en</strong>tes funciones (dep<strong>en</strong>di<strong>en</strong>tes de n) de cara a estudiar su comportami<strong>en</strong>to<br />

asintótico:<br />

Se pide lo sigui<strong>en</strong>te:<br />

n2 + 103n + 106 n √ n log10 n<br />

(5n2 + 3)(3n + 2)(n + 1) log √ √<br />

n n + log n<br />

2 n ( 1<br />

2 )n 2 1/n<br />

3n 2nn2 loge n<br />

n i=1<br />

1<br />

n 1000<br />

i<br />

n i=1 n n i i=1 j=1 n<br />

(n+1)(n2−n+5) n(3+n2 )<br />

(a) Para cada una de ellas, busque una función s<strong>en</strong>cilla que acote superiorm<strong>en</strong>te<br />

su comportami<strong>en</strong>to asintótico, (usando para ello la notación O mayúscula)<br />

procurando ajustarse lo más posible.<br />

(b) Clasifique las funciones anteriores según sean O(2 n ), O(n 4 ), O( √ n), O(log n)<br />

ó O(1).<br />

(c) Agrupe las funciones del ejercicio anterior que sean del mismo ord<strong>en</strong> Θ.<br />

2. Compare las funciones sigui<strong>en</strong>tes por su ord<strong>en</strong> de complejidad:<br />

log log n √ log n (log n) 2 4√ n

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

Saved successfully!

Ooh no, something went wrong!