Esta página se tradujo automáticamente con la API de traducción de Google Cloud.
Algunas páginas se pueden leer mejor en su totalidad.
En informática, la complejidad del espacio es la cantidad de memoria requerida por un algoritmo para ejecutarse en función de la longitud de la entrada. La complejidad del espacio a menudo se expresa mediante una notación asintótica como O (log n), O (n), O (n log n), O (n ^ 2) u O (2 ^ n).
La complejidad espacial de un algoritmo es la cantidad de memoria necesaria para ejecutar el algoritmo en función de la longitud de la entrada. La complejidad del espacio a menudo se expresa en términos de notación asintótica como O (log n), O (n), O (n log n), O (n ^ 2) u O (2 ^ n).
Para calcular la complejidad espacial de un algoritmo, debemos tener en cuenta tanto el espacio estático como el espacio dinámico que utiliza el algoritmo.
El espacio estático es la cantidad de espacio requerido por el algoritmo independientemente del tamaño de la entrada. Esto incluye el espacio requerido para el código del programa y para cualquier estructura de datos estática utilizada por el algoritmo.
El espacio dinámico es la cantidad de espacio requerido por el algoritmo a medida que aumenta el tamaño de la entrada. Esto incluye el espacio requerido para cualquier estructura de datos dinámicos utilizada por el algoritmo, como pilas, colas y árboles.
La complejidad espacial total de un algoritmo es la suma del espacio estático y el espacio dinámico.
Estos son algunos ejemplos de cálculos de complejidad espacial.
Se dice que un algoritmo tiene una complejidad de espacio constante si la cantidad de espacio requerida para ejecutar el algoritmo es independiente del tamaño de la entrada.
Un buen ejemplo de un algoritmo con complejidad espacial constante es la suma de dos números. La cantidad de espacio requerido para almacenar los dos números es independiente del tamaño de los números.
Se dice que un algoritmo tiene complejidad de espacio logarítmico si la cantidad de espacio requerida para ejecutar el algoritmo es logarítmica en el tamaño de la entrada.
Un buen ejemplo de un algoritmo con complejidad de espacio logarítmico es una búsqueda binaria. Para realizar una búsqueda binaria, necesitamos almacenar la matriz de entrada en la memoria. Sin embargo, la cantidad de espacio requerido para almacenar la matriz es logarítmica en el tamaño de la entrada.
Se dice que un algoritmo tiene complejidad de espacio lineal si la cantidad de espacio requerida para ejecutar el algoritmo es proporcional al tamaño de la entrada.
Un buen ejemplo de un algoritmo con complejidad de espacio lineal es una búsqueda lineal. Para realizar una búsqueda lineal, necesitamos almacenar la matriz de entrada en la memoria. La cantidad de espacio requerido para almacenar la matriz es proporcional al tamaño de la entrada.
Se dice que un algoritmo tiene una complejidad de espacio n log n si la cantidad de espacio requerida para ejecutar el algoritmo es n log n en el tamaño de la entrada.
Un buen ejemplo de un algoritmo con complejidad de espacio n log n es una ordenación por fusión. Para realizar una ordenación por fusión, necesitamos almacenar la matriz de entrada en la memoria. La cantidad de espacio requerido para almacenar la matriz es n log n en el tamaño de la entrada.
Se dice que un algoritmo tiene complejidad de espacio cuadrático si la cantidad de espacio requerida para ejecutar el algoritmo es cuadrática en el tamaño de la entrada.
Un buen ejemplo de un algoritmo con complejidad de espacio cuadrático es un tipo de burbuja. Para realizar una ordenación de burbujas, necesitamos almacenar la matriz de entrada en la memoria. La cantidad de espacio requerida para almacenar la matriz es cuadrática en el tamaño de la entrada.
Se dice que un algoritmo tiene complejidad de espacio exponencial si la cantidad de espacio requerida para ejecutar el algoritmo es exponencial en el tamaño de la entrada.
Un buen ejemplo de un algoritmo con complejidad de espacio exponencial es una búsqueda de fuerza bruta. Para realizar una búsqueda de fuerza bruta, necesitamos almacenar la matriz de entrada en la memoria. La cantidad de espacio requerido para almacenar la matriz es exponencial en el tamaño de la entrada.