la complejidad en los algoritmos
TRANSCRIPT
![Page 1: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/1.jpg)
Análisis de Algoritmos
La Complejidad en los Algoritmos
Nombre: Felipe Burgos
![Page 2: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/2.jpg)
Complejidad de un Algoritmo
• La complejidad de un algoritmo depende del tamaño del problema que deseamos resolver
![Page 3: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/3.jpg)
Complejidad de un Algoritmo
• La complejidad de un algoritmo se puede entender como una medición de la cantidad de recursos que un algoritmo necesita para su funcionamiento.
![Page 4: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/4.jpg)
Espacio
• Para este recurso la complejidad es la cantidad de memoria requerida para la ejecución del algoritmo.
![Page 5: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/5.jpg)
Espacio
• La complejidad del algoritmo también se asocia a las diferentes estructuras de datos usadas en su implementación, ya sean estáticas (vectores o matrices) o dinámicas (pilas, listas, colas, árboles y grafos).
![Page 6: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/6.jpg)
Tiempo
• Para este recurso la complejidad es la cantidad de tiempo que necesita un algoritmo para realizar sus operaciones.
![Page 7: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/7.jpg)
Variables de entrada
• Los algoritmos se comportan de distinta manera de acuerdo a como se les ingrese la información.
• Por esto es necesario analizar como se comportan en los casos extremos, utilizando datos muy ordenados o datos muy desordenados.
![Page 8: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/8.jpg)
Peor Caso
• Indica cuántas operaciones debe realizar un algoritmo dado para garantizar que producirá una solución al problema a resolver.
![Page 9: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/9.jpg)
Caso Promedio
• Como el nombre lo indica busca encontrar el promedio de operaciones efectuadas para solucionar un problema.
![Page 10: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/10.jpg)
Tiempo de Ejecución.
• Cuando el tamaño de una entrada crece, la función para medir dicha complejidad es denotada como T(n)
![Page 11: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/11.jpg)
Notación Asintótica
• Se necesita analizar la potencia de los algoritmos independientemente de al potencia del hardware que los ejecute e incluso de la habilidad del desarrollador que los codifique.
![Page 12: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/12.jpg)
• Los problemas pequeños se pueden resolver de cualquier forma, pero es de nuestro interés el análisis cuando el algoritmo se aplica a grandes problemas.
![Page 13: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/13.jpg)
Comportamiento Asintótico
• En base a lo anterior nos interesa estudiar el comportamiento de un algoritmo cuando se fuerza el tamaño del problema al que se aplica.
• Matemáticamente hablando es cuando N tiende al infinito
![Page 14: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/14.jpg)
• Se denomina asintótico porque se analiza el comportamiento de las funciones en base a su tasa de crecimiento.
• Esta notación se describe por medio de una función cuyo dominio es de los números naturales (N), estimado a partir de los recursos tiempo de ejecución o de espacio de memoria de algoritmos en base a la longitud de entrada.
![Page 15: La complejidad en los algoritmos](https://reader034.vdocuments.net/reader034/viewer/2022052602/55b493afbb61ebff328b45dc/html5/thumbnails/15.jpg)
• Lo que se intenta identificar son “familias” de funciones usando como criterio de agrupación su comportamiento asintótico.
• A un conjunto de funciones que comparten un mismo comportamiento asintótico les denominamos un orden de complejidad.