10
Alumno : Víctor Hugo Orellana Jaque Análisis de Algoritmos Sección 112 Profesora : Sra. Pilar Pardo Hidalgo 25-junio-2014

Complejidad de un algoritmo

Embed Size (px)

Citation preview

Alumno : Víctor Hugo Orellana Jaque!Análisis de Algoritmos Sección 112!Profesora : Sra. Pilar Pardo Hidalgo!

25-junio-2014!

¿Qué es la complejidad de un algoritmo?!

² Se expresa en función del tamaño que se desea resolver"

² Es una medida de la cantidad de recursos que necesita un algoritmo"

Recurso   Definición  de  complejidad  del  algoritmo  

Espacio   Can+dad  de  memoria  requerida  para  su  ejecución  También  está  asociada  a  las  estructuras  de  datos  usadas  en  su  implementación  

Tiempo   Se  asocia  a  la  can+dad  de  +empo  que  necesita  el  algoritmo  para  realizar  la  ejecución  de  sus  operaciones  

Cada algoritmo se comporta diferente , dependiendo de las variables de entrada que posea

(como entreguen la información). Por ende, se debe estudiar su

comportamiento en casos extremos. !

Complejidad!

•  Peor caso : Indica cuántas operaciones tienen que realizar los algoritmos para garantizar que se producirá una solución"

•  Caso Promedio : Se busca el promedio de operaciones realizadas para solucionar un problema considerando toda posible entrada con un tamaño determinado"

Tiempo de Ejecución!

"•  Se mide con la función T(n)"•  Se puede medir físicamente ejecutando

el programa, contando las instrucciones a ejecutar multiplicado por el tiempo que se demora en ejecutar cada instrucción."

Notación Asintótica!•  Matemáticamente hablando : N -> ∞"•  Esta función analiza el comportamiento de

las funciones en base a su tasa de crecimiento"

•  La complejidad del algoritmo se denota según la notación Big-O"

•  N debe ser número natural."

Ventajas y Desventajas : Matriz de Adyacencia!

Ventajas   Desventajas  

Se  puede  determinar  en  un  +empo  fijo  y  constante  si  un  enlace  pertenece  o  no  al  grafo.  

Se  requiere  almacenamiento  |v*v|  .  O  sea  O(n2).  

Es  fácil  determinar  si  existe  o  no  un  arco  o  enlace,  sólo  se  debe  posicionar  en  la  matriz.  

Sólo  al  leer  o  examinar  la  matriz  puede  llevar  un  +empo  de  sea  O(n2)  ,  siendo  por  ende,  demoroso.  

Es  fácil  determinar  si  existe  un  ciclo  en  el  grafo,  para  eso  se  debe  mul+plicar  la  matriz  por  ella  misma  “n”  veces  hasta  obtener  una  matriz  nula  (Matriz  solo  con  valores  0)  o  bien,  una  sucesión  periódica  de  matrices  (hay  ciclo)  

Familia de Funciones Asintóticas!Complejidad   Terminología  

O(1)   Complejidad  constante  

O(n2)   Complejidad  cuadrá+ca  

O(log  n)   Complejidad  logarítmica  

O(n)   Complejidad  lineal  

O(n  log  n)   Complejidad  casi-­‐lineal  

O(nb)   Complejidad  polinómica  

O(bn)   Complejidad  exponencial  

O(n!)   Complejidad  factorial  

F I N

Gracias por su atención!