Upload
pedro-avaria
View
29
Download
0
Embed Size (px)
Citation preview
Análisis de Algoritmo
Pedro Avaria
Complejidad del algoritmo
El tamaño del problema determina la complejidad del algoritmo
La complejidad de algoritmo
Es la medida de recursos (Tiempo y Espacio) que un algoritmo necesita o
utiliza.
Con espacio como recurso
Nos referimos a la cantidad de memoria que utiliza
En cuanto al tiempo
Nos referimos al tiempo de ejecución del algoritmo
Cada uno de los algoritmos se comporta de forma diferentes
(variables de entrada)
Por estas razones debemos estudiar el comportamiento en casos extremos
Muy ordenados o muy desordenados
Complejidad del peor caso
Este caso analiza la cantidad de operaciones que debe ejecuta el
algoritmo para encontrar una solución
Complejidad del caso promedio
Se quiere obtener el promedio de operaciones que realiza para
solucionar un problemas tomando en cuenta las posibles entradas con un
tamaño determinado
El tiempo de ejecución
Se determina a
través de la función
T(n)
Es el tiempo que se demora en ejecutar el algoritmo dependiendo de las variables de
entrada.
Se puede medir físicamente
ejecutando el algoritmo
Se requiere analizar la potencia de los algoritmos independientes en que maquinas
se ejecuten o que tan bueno sea el programador que lo codifique
Notación asintótica
La mayoría de las veces los problemas pequeños se resuelven fácilmente
Es por esto que nos interesa analizar los problemas mas grandes
Cuando la complejidad algoritmo tiende a infinito su
comportamiento es asintótico
Esto se puede ver a base de su crecimiento
Se determina a partir del tiempo de ejecución o de espacio en memoria De los
algoritmos en base a la longitud de entrada
Se denota según la notación Big-0.
Vamos a identificar los algoritmos por familias según su:
Comportamiento asintótico
Complejidad Terminología O(1) Complejidad constante O(n2) 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