Análisis de algoritmos

17
Análisis de Algoritmos JORGE SOTO VILLEGAS

Transcript of Análisis de algoritmos

Análisis de AlgoritmosJORGE SOTO VILLEGAS

¿Que es la complejidad de un algoritmo?

La COMPLEJIDAD de un algoritmo se expresa en función al tamaño de un problema que se desea resolver

Problema pequeño

Problema grande

Complejidad pequeña

Complejidad alta

La complejidad de un algoritmo es cuantitativo y se mide según los recursos que se utilizan (espacio y tiempo)

Si el recurso es ESPACIO, se refiere al espacio en memoria que se requiere para su ejecución

Si el recurso es TIEMPO, se asocia a la cantidad de tiempo que se necesita para la ejecución de operaciones

El comportamiento de un algoritmo varía según los datos de entrada.

Por esto debemos estudiar los casos extremos

Peor Caso

Cantidad de operaciones que realiza el algoritmo para GARANTIZAR una solución

Caso Promedio

Se busca el promedio de operaciones para solucionar un problema considerando todas las formas posibles con un tamaño determinado.

Mejor caso

Algoritmo que ejecuta una sola vez rápida y eficientemente su ejecución

Tiempo de Ejecucion

Tiempo que demora el algoritmo dependiendo de las variables de entrada.También se puede medir físicamente

Se denota T(n)

Notación Asintótica

Indica el comportamiento que tienen los distintos tipos de algoritmos.Se analiza la potencia del algoritmo

Esto se analiza en base a su tasa de crecimiento.

Cuando la complejidad de un algoritmo tiende a infinito, diremos que tiene un comportamiento asintótico.

Se deduce a partir del tiempo de ejecución o del espacio en memoria en base a la longitud de la entrada.

Se denota Big-O

Agrupando las funciones según su comportamiento asintótico, nos encontramos con funciones que comparten comportamientos similares.

A esto le llamaremos orden de complejidad y los denominaremos “O”

Complejidad Terminología

O(1) Complejidad Constante

O(n^2) Complejidad Cuadrática

O(Log n) Complejidad Logarítmica

O(n) Complejidad Lineal

O(n log n) Complejidad Casi – Lineal

O(n^b) Complejidad Polinómica

O(b^n) Complejidad Exponencial

O(n!) Complejidad Factorial