Este documento discute el tiempo de ejecución de los algoritmos. Explica conceptos como la notación Big-O y cómo describe el crecimiento del tiempo de ejecución en relación con el tamaño de la entrada. Proporciona ejemplos de diferentes órdenes de complejidad como O(1), O(n), O(n^2), y recomienda optimizar el código, paralelizar tareas y monitorear el rendimiento para mejorar el tiempo de ejecución.
3. T IE M P O D E E J E C U C IÓ N
D E U N A L G O R I T M O
"Tiempo quetarda un algoritmo en
completar la secuencia depasos
durante su ejecución"
4. Aporte Mátematico
Secuencia de pasos que
toman una entrada y genera
una salida.
Describe el crecimiento del tiempo de
ejecución del algoritmo con respecto a la
entrada.
Es el límite superior del tiempo de
ejecución del algoritmo en función del
tamaño de la entrada.
6. Algunas de las notaciones de tiempo de ejecución más
comunes utilizadas en la notación Big O:
O(1)
Este es el mejor escenario posible, y
significa que el tiempo de ejecución
es constante independientemente de
la cantidad de datos de entrada.
O(log n)
Este es un crecimiento logarítmico, y
significa que el tiempo de ejecución
aumenta lentamente a medida que la
cantidad de datos de entrada aumenta.
O(n)
Este es un crecimiento lineal, y
significa que el tiempo de ejecución
aumenta proporcionalmente a la
cantidad de datos de entrada.
7. Algunas de las notaciones de tiempo de ejecución más
comunes utilizadas en la notación Big O:
O(n log n)
Este es un crecimiento de logaritmo de la
complejidad lineal, y significa que el tiempo de
ejecución aumenta proporcionalmente a la cantidad
de datos de entrada y al logaritmo de la cantidad de
datos de entrada.
O(n^2)
Este es un crecimiento cuadrático, y
significa que el tiempo de ejecución
aumenta rápidamente a medida que la
cantidad de datos de entrada aumenta.
8. Algunas de las notaciones de tiempo de ejecución más
comunes utilizadas en la notación Big O:
O(n^3), O(n^4), etc.
Estos son crecimientos polinómicos, y significan que el tiempo de ejecución aumenta aún
más rápidamente a medida que la cantidad de datos de entrada aumenta.
O(2^n)
Este es un crecimiento exponencial, y
significa que el tiempo de ejecución
aumenta rápidamente con un aumento en
la cantidad de datos de entrada.
12. Algunos aspectos importantes a tomar en cuenta, cuando se trate el tema del Tiempo de
Ejecución de Algoritmos será:
Análisis de complejidad temporal: Es importante realizar un
análisis de la complejidad temporal de un algoritmo para
estimar su tiempo de ejecución en función del tamaño de la
entrada.
Optimización del código: Es importante escribir código
eficiente y optimizarlo constantemente.
Paralelización: La paralelización puede ser una forma efectiva
de mejorar el tiempo de ejecución de un programa,
especialmente cuando se ejecutan tareas independientes
simultáneamente en diferentes procesadores.
Monitoreo de rendimiento: Es importante monitorear el
rendimiento de un programa y realizar pruebas de carga para
identificar cuellos de botella y problemas de rendimiento.
14. ¿Q ué se a pre ndió a t ra vé s de l t e ma t ra t a do?
En conclusión, el tiempo de ejecución es un factor crítico en la
programación y es importante prestarle atención tanto en el
diseño como en la implementación de un programa.
Es importante estar al tanto de las buenas prácticas en
programación, como la elección de algoritmos y estructuras de
datos eficientes
La escalabilidad también es un aspecto importante a
considerar para asegurar que un programa sea capaz de
manejar un aumento en la entrada y el uso de recursos.