complejidad de los algoritmos
TRANSCRIPT
¿Cómo medimos la complejidad de un algoritmo?A través de la eficiencia de este mismo.
Espacio Tiempo
Si el recurso es espacioEs la cantidad de memoria requerida dentrode un dispositivo.
El espacio es constante, pero de dominio limitado.
Si el recurso es el tiempo
Se habla de el tiempo en ejecución que se necesita.Dentro de un dispositivo.
Tiempo teórico
Tiempo real
¿Cuáles son las estructuras que ocupan espacio?
Estructura de datos
internas
Estáticasvector
matriz
dinámicas
Lineales
Pilas
Listas
Colas
No linealesArboles
Grafosexternas
bbdd
archivos
Nivel de complejidad
Complejidad
Peor casoAnalizar cant. De
operaciones para una solución
Caso promedioSe ajustan las posibles entradas a un tamaño
determinado
AsintóticaSe denomina asintótica ya que se analiza el comportamiento de las funciones en base a su tasa de crecimiento.
• Su dominio son los números naturales (n).• Estimada por el tiempo de ejecución o espacio en memoria.• Se denota BIG-O.• No son negativas.
Se identifican familias de funciones usando como criterio su comportamiento asintótico.
A las funciones con el mismo comportamiento se les denomina “orden de complejidad (O)”.
Complejidad y terminología Complejidad constanteO(1)
O(n2)
O(log n)
O(n)
O(n log n)
O(n^b)Complejidad exponencialO(b^n)Complejidad factorialO(n!)
Complejidad cuadráticaComplejidad logarítmicaComplejidad linealComplejidad casi linealComplejidad polinómica
Conclusión.
Antes de programar se debe analizar detalladamente la maquina en la que se ejecutara el algoritmo, luego analizar el mas eficiente envase al tiempo y espacio disponible.Con ello enfrentar la problemática y darle la solución mas apropiada.