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.

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

Estos difer<strong>en</strong>tes comportami<strong>en</strong>tos asintóticos se pued<strong>en</strong> ord<strong>en</strong>ar de m<strong>en</strong>or a<br />

mayor crecimi<strong>en</strong>to. Aunque no pret<strong>en</strong>demos dar una lista exhaustiva, la sigui<strong>en</strong>te<br />

cad<strong>en</strong>a de desigualdades puede ori<strong>en</strong>tar sobre algunos de los órd<strong>en</strong>es de coste más<br />

usuales: 5<br />

1 ≪ log(n) ≪ n ≪ n log(n) ≪ n 2 ≪ n 3 ≪ · · · ≪ 2 n ≪ n!<br />

A pesar de las apari<strong>en</strong>cias, la relación “ser del ord<strong>en</strong> de” no es una relación<br />

de ord<strong>en</strong> total: exist<strong>en</strong> pares de funciones tales que ninguna de las dos es una<br />

cota superior de la otra. Por ejemplo, las funciones<br />

f(n) =<br />

<br />

1 si n es par<br />

n si n es impar<br />

no verifican f ∈ O(g) ni g ∈ O(f).<br />

g(n) =<br />

<br />

n si n es par<br />

1 si n es impar<br />

18.3 Reglas prácticas para hallar el coste de un<br />

programa<br />

18.3.1 Tiempo empleado<br />

En este apartado se dan reglas g<strong>en</strong>erales para el cálculo de la complejidad <strong>en</strong><br />

tiempo <strong>en</strong> el peor caso de los programas escritos <strong>en</strong> <strong>Pascal</strong>. Para dicho cálculo,<br />

como es natural, se debe t<strong>en</strong>er <strong>en</strong> cu<strong>en</strong>ta el coste <strong>en</strong> tiempo de cada una de las<br />

difer<strong>en</strong>tes instrucciones de <strong>Pascal</strong>, y esto es lo que se detalla a continuación.<br />

Instrucciones simples<br />

Se considera que se ejecutan <strong>en</strong> tiempo constante:<br />

• La evaluación de las expresiones aritméticas (suma, resta, producto y división)<br />

siempre que los datos sean de tamaño constante, así como las comparaciones<br />

de datos simples.<br />

• Las instrucciones de asignación, lectura y escritura de datos simples.<br />

• Las operaciones de acceso a una compon<strong>en</strong>te de un array, a un campo de<br />

un registro y a la sigui<strong>en</strong>te posición de un archivo.<br />

Todas esas operaciones e instrucciones son Θ(1).<br />

5 La notación ≪ repres<strong>en</strong>ta la relación de ord<strong>en</strong> m<strong>en</strong>or que.

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

Saved successfully!

Ooh no, something went wrong!