Documentos de Académico
Documentos de Profesional
Documentos de Cultura
linkedin.com/in/samuelluciano| learningwithsam.com
How long will my program take?
Why does my program run out of memory?
Is it my algorythm consider efficient?
How is the performance of my algorythm?
Is it better o worst than…?
Herramientas para análisis de algoritmos
▪ Método Científico
▪ Modelos Matemáticos
▪ Notación de tilde (~)
▪ Orden de crecimiento
Método Científico
▪ Observar
▪ Formular la hipótesis
▪ Predecir
▪ Verificar
▪ Validar
N Tiempo de ejecución
1000 0.1 s
2000 0.8 s
4000 6.4 s
8000 51.1 s
Método Científico
En términos de logaritmo, se podría modelar
una función basado en la experimentación:
Para representar una función que al ser dividida por f(n) tiende a 1 en la medida que n crece, utilizamos
~f(n). g(n) ~f(n) indica que g(n)/f(n) se aproxima a 1 en la medida en que n crece.
Orden de crecimiento
A pesar de que los análisis matemáticos proveen una aproximación mas real al tiempo de
ejecución de un algoritmo, cuando se trata de comparar eficiencia, se puede utilizar un análisis
mas empírico para determinar el crecimiento de estos y realizar comparaciones.
Orden de crecimiento: clasificaciones
Constante
Logarítmico
Linear
Linearítmico
Cuadrático
Cúbico
Exponencial
Orden de crecimiento: clasificaciones
Orden de crecimiento: casos