Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Mauricio Amigo
En un sentido amplio, dado un problema y un dispositivo donde resolverlo, es necesario proporcionar un mtodo preciso que lo resuelva, adecuado al dispositivo. A tal mtodo lo denominamos algoritmo.
Mauricio Amigo
Reglas generales para el clculo del nmero de OE La siguiente lista presenta un conjunto de reglas generales para el clculo del nmero de OE, siempre considerando el peor caso. Estas reglas definen el nmero de OE de cada estructura bsica del lenguaje, por lo que el nmero de OE de un algoritmo puede hacerse por induccin sobre ellas.
Mauricio Amigo
Vamos a considerar que el tiempo de una OE es, por definicin, de orden 1. La constante c que menciona el Principio de Invarianza depender de la implementacin particular, pero nosotros supondremos que vale 1.
El tiempo de ejecucin de una secuencia consecutiva de instrucciones se calcula sumando los tiempos de ejecucin de cada una de las instrucciones.
Mauricio Amigo
Mauricio Amigo
Mauricio Amigo
pueden variar en cada iteracin, y por tanto habr que tenerlo en cuenta para su clculo.
Mauricio Amigo
Para calcular el tiempo de ejecucin del resto de sentencias iterativas (FOR, REPEAT, LOOP) basta expresarlas como un bucle WHILE.
A modo de ejemplo, el tiempo de ejecucin del bucle:
FOR i:=1 TO n DO S END; puede ser calculado a partir del bucle equivalente: i:=1; WHILE i<=n DO S; INC(i) END;
Mauricio Amigo
El tiempo de ejecucin de una llamada a un procedimiento o funcin F(P1, P2,..., Pn) es 1 (por la llamada), ms el tiempo de evaluacin de los parmetros P1, P2,..., Pn, ms el tiempo que tarde en ejecutarse F, esto es,
T = 1 + T(P1) + T(P2) + ... + T(Pn) + T(F).
No contabilizamos la copia de los argumentos a la pila de ejecucin, salvo que se trate de estructuras complejas (registros o vectores) que se pasan por valor. En este caso contabilizaremos tantas OE como valores simples contenga la estructura. El paso de parmetros por referencia, por tratarse simplemente de punteros, no contabiliza tampoco.
Mauricio Amigo
Tambin es necesario tener en cuenta, cuando el compilador las incorpore, las optimizaciones del cdigo y la forma de evaluacin de las expresiones, que pueden ocasionar cortocircuitos o realizarse de forma perezosa (lazy). En el presente trabajo supondremos que no se realizan optimizaciones, que existe el cortocircuito y que no existe evaluacin perezosa.
Mauricio Amigo
Mauricio Amigo
Mauricio Amigo
Donde ri pueden ser reales o complejas, dependiendo del orden de multiplicidad se pueden dar los siguientes casos:
Mauricio Amigo
Mauricio Amigo
Como ejemplo la sucesin de Fibonacci: T(n) = T(n-1)+T(n-2) n >= 2, con T(0)=0 y T(1)=1
Haciendo el cambio: T(n) = X2. Se obtiene la funcin caracterstica: X2 = X + 1 o X2 X -1 = 0 Cuyas races son: y por tanto:
Mauricio Amigo
Sus coeficientes:
y finalmente:
Mauricio Amigo