Es la memoria que utiliza un programa para su ejecución; es decir el espacio de memoria que ocupan todas las variables propias del algoritmo.

Esta se divide en Memoria Estática y Memoria Dinámica.

Memoria estática. Para calcularla se suma de memoria que ocupan las variables declaradas en el algoritmo.

Memoria dinámica. Su cálculo no es tan simple ya que depende de cada ejecución del algoritmo.

Ejemplo: algoritmo de búsqueda en arboles.

Función búsqueda_arboles.

Devuelve una solución o fallo.

Inicializa un árbol de búsqueda con estado inicial.

Bucle hacer

Si no hay candidatos para expandir.

Entonces devolver fallo.

En otro caso escoger nodo para expandir.

Si el nodo es el objetivo.

Entonces devolver solución.

En otro caso expandir nodo.

M = profundidad máxima del árbol (puede ser infinita)

D = profundidad de la mejor solución (menor costo)

B = factor de ramificacion (numero máximo de sucesiones) = 10

Depth Nodes Time Memory

    0                                 1                             1 milisecond                 100 bytes 

    2                               111                           .1 second                     11 Kb 

    4                             11111                         11 second                    1 Mb 

    6                             10 ^ 6                         18 minutos                   111 Mb

Google