2. ¿Qué es una complejidad de
algoritmo?
• -La complejidad de los algoritmos representa o dice el tiempo de ejecución de
cualquier programa en base a los 'n' datos de entrada.
3. La complejidad de un algoritmo según:
• En el desarrollo de un programa computacional resulta necesario definir criterios
para medir su rendimiento o comportamiento. Estos criterios se centran
principalmente en su simplicidad y en el uso eficiente de los recursos.
4. Si los recursos fueran espacio
• Respecto al uso eficiente de los recursos, éste suele medirse en función de dos
espacio, es decir, memoria que utiliza
5. Y si fuera tiempo
• el tiempo, lo que tarda en ejecutarse.
6. Cada algoritmo se va a comportar de manera distinta
dependiendo de la cantidad de datos que se ingresen (
variables.) y del equipo en que se ejecute.
7. Por eso es conveniente estudiar
• El comportamiento de un algoritmo puede cambiar notablemente para diferentes
• entradas para muchos programas el tiempo de ejecución es en realidad una
función
• de la entrada específica, y no sólo del tamaño de ésta. Así suelen estudiarse tres
casos
• para un mismo algoritmo: caso peor, caso mejor y caso medio.
8. Complejidad del mejor caso
• El caso mejor corresponde a la traza (secuencia de sentencias) del algoritmo que
realiza menos instrucciones.
9. Complejidad del caso promedio
• el caso peor corresponde a la traza del algoritmo que realiza más instrucciones, lo
cual nos asegura que al menos el algoritmo se desempeñará de esa forma .
10. Complejidad peor caso
• el caso peor corresponde a la traza del algoritmo que realiza más instrucciones, lo
cual nos asegura que al menos el algoritmo se desempeñará de esa forma .
11. Tiempo de ejecución
• Tiempo de Ejecución
• cuando el tamaño de la entrada crece , la función para medir esa
• complejidad se denota como T(n).
• Esta función se puede medir físicamente ejecutando el programa, calcularse sobre
el código contando instrucciones a ejecutar y multiplicando por el tiempo
requerido por cada instrucción
12. Notación asintótica( o cota superior asintótica)
• En análisis de algoritmo una cota superior asintótica es una función que sirve de
cota superior de otra función cuando el argumento tiende a infinito.
13. La cota superior asintótica tiene gran importancia en
teoría de la complejidad computacional a la hora de
definir las clases de complejidad de cada algoritmo.
14. Se denomina “asintótica” porque analiza el
comportamiento de las funciones en base a su tasa de
crecimiento
• En informática, la notación O grande se utiliza para clasificar los algoritmos de
cómo responden (por ejemplo, en su tiempo de procesamiento o de los requisitos
de espacio de trabajo) a los cambios de tamaño de entrada. Esta siempre es
positiva
15. Órdenes usuales para funciones
Los órdenes más utilizados en análisis de algoritmos, en orden creciente, son los
siguientes (donde c representa una constante y n el tamaño de la entrada):
notación nombre
O(1) orden constante
O(log log n) orden sublogarítmico
O(log n) orden logarítmico
O() orden sublineal
O(n) orden lineal
O(n · log n) orden lineal logarítmico
O(nc) orden potencial
O(cn), n > 1 orden exponencial
O(n!) orden factorial
O(nn) orden potencial exponencial