Informe Algoritmos
Informe Algoritmos
Curso: Fecha:
ISI S4-P1 21/12/2020
Tema:
Análisis de algoritmos iterativos
Objetivo General
Analizar los diferentes problemas planteados, usando el concepto de algoritmos
planteados que se basa en llegar a un resultado a través de una iteración mediante un
ciclo definido o indefinido.
Objetivos Específicos
Verificar diferentes algoritmos iterativos que poseen diferentes estructuras.
Analizar y medir sus tiempos de ejecución considerando cada parte del
programa presentado.
Lanzar resultados de complejidad temporal y expresar los tiempos de corrida de
peor caso.
Aprender de los diferentes tiempos de ejecución y así lograr programas más
eficientes
1. Determinar una expresión O para el tiempo de corrida de peor caso de cada uno de
los siguientes fragmentos de código.
a) f(n, 10, 0);
g(n, m, k);
h(n, m, 1000000);
b) for (int i = 0; i < n; ++i)
f(n, m, k);
c) for (int i = 0; i < e(n, 10, 100); ++i)
f(n, 10, 0);
d) for (int i = 0; i < e(n, m, k); ++i)
f(n, 10, 0);
e) for (int i = 0; i < n; ++i)
for (int j = i; j < n; ++j)
f(n, m, k);
Suponer que n, m y k son de tipo entero, y que las funciones e, f, g y h tienen las
siguientes características:
• e(n, m, k) es O(1) y devuelve valores entre 1 y (n + m + k);
• f(n, m, k) es O(n + m);
• g(n, m, k) es O(m + k);
• h(n, m, k) es O(n + k).
Solución:
Respuesta: O(n+1000000)
Respuesta: O(n+m)
Respuesta: O(n+10+100)
d) for (int i = 0; i < e(n, m, k); ++i) } [O(1), O(n+m+k)]
f(n, 10, 0); } O(n+10)} O(n+m+k)
Respuesta: O(n+m+k)
Respuesta: O(n)^2
EJERCICIO 2
2.Para cada una de las siguientes funciones java, averiguar qué es lo que calculan,
Expresar la respuesta como función de n. Expresar el tiempo de corrida de peor caso
en notacion O
a)
Función que da como resultado una suma iterativa hasta n veces
int f (int n)
}
Int sum = 0; -Operación elemental----- Q (1)
For(int i; i <= n; i++) -En el peor de los casos se repetirá n veces------
Q (n . 1) = Q (n)
Sum+= i; -Operación elemental ---- Q(1)
Return sum; -Operación elemental---- Q(1)
}
Mayor de la secuencia de instrucciones Q(n)
Función tendrá una eficiencia de O(n)
b)
Función que da como resultado una suma iterativa entre el iterador y el valor de una
función hasta n-1 veces
int g (int n)
}
Int sum = 0; Operación elemental----- Q (1)
For(int i; i < n; i++) -En el peor de los casos se repetirá n -1 veces------
---Q ((n - 1.). n) = Q (n2 −n) = O( Max(n2 , n))= Q (n2 )
Sum += i + f(n); ---por orden de eficiencia de f(n) -----Q(n)
Return sum; -Operación elemental----- Q (1)
}
c)
Función que da como resultado la suma del valor de la función f(n) con el valor de la
función g(n)
int h(int n)
}
Return f(n) + g(n) ----------Q (n2 ) + Q (n) = Q(n2 +n ) = O( Max(n2 , n)) = Q (n2 )
}
Limitaciones
Conclusiones y Recomendaciones
Conclusiones
Cardona, S., Jaramillo, S., & Carmona, P. (2007). Análisis de Algoritmos en Java. Armenia:
Elizcom.
Firma integrantes
Steven Solórzano
17500111114