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