Complejidad Computacional

7
ANÁLISIS DE ALGORITMOS Es la medida de los recursos (tiempo y espacio), que un algoritmo requiere para su funcionamiento. Ésta se expresa en función de la talla del problema que se desea resolver. Qué es la Complejidad de un Algoritmo?

Transcript of Complejidad Computacional

ANÁLISIS DE ALGORITMOS

Es la medida de los recursos (tiempo y espacio), que un algoritmo requiere para su funcionamiento. Ésta se expresa en función de la talla del problema que se desea resolver.

Qué es la Complejidad de un Algoritmo?

ANÁLISIS DE ALGORITMOS

La complejidad es la cantidad de memoria que se requiere para su ejecución, esto tiene que ver con las estructuras de datos utilizadas en la implementación.

Si el recurso es Espacio:

ANÁLISIS DE ALGORITMOS

La complejidad se asocia a la cantidad de tiempo que el algoritmo toma para ejecutar las operaciones.

Si el recurso es Tiempo:

ANÁLISIS DE ALGORITMOSTiempo de Ejecución.

Cuando el tamaño de la entrada crece, entonces nos interesa medir el Tiempo de Ejecución, la función para medir esta complejidad se denota como: T(n),

Esta función se mide:

1. Ejecutando el Programa.

2. Calcular sobre el código contando las instrucciones a ejecutar y multiplicarlo por el tiempo requerido,

ANÁLISIS DE ALGORITMOSNotación Asintótica.

Necesitamos analizar la potencia del algoritmo independiente de la máquina y del programador, además indagamos cuando el algoritmo se aplica a grandes problemas.

Estas consideraciones nos llevan al estudio del comportamiento de un algoritmo cuando forzamos el tamaño del problema.

N tiende al infinito.

Asintótica quiere decir que analiza el comportamiento de las funciones en base a su crecimiento.

ANÁLISIS DE ALGORITMOSNotación Asintótica.

Se describe por medio de una función, que se estima a partir del tiempo de ejecución o de espacio de memoria.

La complejidad del algoritmo se denota: O (Big O) O Grande

ANÁLISIS DE ALGORITMOSNotación Asintótica.

El conjunto de funciones se denominan O, y existe una infinidad de ellos.

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