|
ESTIMACIÓN DE LA COMPLEJIDAD EN ALGORITMOS NO RECURSIVOS
•Asignaciones y expresiones simples (=) El tiempo de ejecución de toda instrucción de asignación simple, de la evaluación de una expresión formada por términos simples o de toda constante es O(1). •Secuencias de instrucciones (;) T(S1;S2) = T(S1) + T(S2) Aplicando la regla de la suma: O(T(S1 ; S2)) = max(O( T(S1), T(S2))) •Instrucciones condicionales (IF, SWITCH-CASE) El tiempo de ejecución para una instrucción condicional IF-THEN es el tiempo necesario para evaluar la condición, más el requerido para el conjunto de instrucciones que se ejecutan cuando se cumple la condición lógica. T(IF-THEN) = T(condición) + T(rama THEN) Aplicando la regla de la suma: O(T(IF-THEN)) = max(O( T(condición), T(rama THEN))) El tiempo de ejecución para una instrucción condicional de tipo IF-THEN-ELSE resulta de evaluar la condición, más el máximo valor del conjunto de instrucciones de las ramas THEN y ELSE. T(IF-THEN-ELSE) = T(condición) + max(T(rama THEN), T(rama ELSE)) Aplicando la regla de la suma, su orden esta dada por la siguiente expresión: O(T(IF-THEN-ELSE)) = O( T(condición)) + max(O(T(rama THEN)), O(T(rama ELSE))) Aplicando la regla de la suma: O(T(IF-THEN-ELSE)) = max(O( T(condición)), max(O(T(rama THEN)), O(T(rama ELSE)))) El tiempo de ejecución de un condicional múltiple (SWITCH-CASE) es el tiempo necesario para evaluar la condición, más el mayor de los tiempos de las secuencias a ejecutar en cada valor condicional. •Instrucciones de iteración (FOR, WHILE-DO, DO-WHILE) El tiempo de ejecución de un bucle FOR es el producto del número de iteraciones por la complejidad de las instrucciones del cuerpo del mismo bucle. |