Tengo la definición de un algoritmo in situ del profesor, pero no lo entiendo.
Los algoritmos in situ se refieren a algoritmos que funcionan con memoria Θ (1).
Qué significa eso?
Tengo la definición de un algoritmo in situ del profesor, pero no lo entiendo.
Los algoritmos in situ se refieren a algoritmos que funcionan con memoria Θ (1).
Qué significa eso?
Respuestas:
Primero, descomprimimos lo que .
Big y big Θ son clases de funciones. Hay una definición formal aquí , pero para los propósitos de esta pregunta, decimos que una función f está en O ( 1 ) si hay una constante c , donde, para todos x , f . Es decir, crece como máximo tan rápido como una función constante.
Big- no significa mucho para las funciones constantes, porque cuando se describe el tiempo de algoritmo o el uso del espacio, no hay mucho por debajo de la constante. Pero para explicar lo que significa, f ∈ Θ ( 1 ) si hay algunas constantes c , d tales que, para todo x , d ≤ f ( x ) ≤ c . Es decir, f crece al menos tan rápido, y como máximo tan rápido, como una función constante.
¿Qué tiene que ver esto con el uso de la memoria? Considere algún algoritmo . Hay alguna función (matemática) que, dada una entrada n , proporciona el uso máximo de memoria de su algoritmo A en cualquier entrada de tamaño n . Llamemos a esta función m e m .
Entonces, ahora combinamos nuestros dos conceptos. Si un algoritmo usa memoria , entonces su función de uso de memoria está en Θ ( 1 ) , lo que significa que existe alguna d , c tal que, para cualquier entrada, la memoria utilizada está entre d y c .
En resumen, esto significa que el uso de memoria del algoritmo está en un rango constante, independientemente de la entrada.
Por lo general, la función de memoria no tiene en cuenta la memoria utilizada para almacenar la entrada al algoritmo, ya que de lo contrario el uso de la memoria siempre sería al menos .
Complejidad espacial constante del algoritmo
La cantidad de memoria que usa su algoritmo es independiente de la entrada.
Se dice que un algoritmo tiene una complejidad espacial constante si utiliza una cantidad fija de espacio. Puede ser variables o una matriz de exactamente elementos.
However, In-situ algorithms perform their intended function on the input itself and thus require very little or no extra space. The input is usually overwritten by the output as the algorithm executes. (ref)
In-situ algorithms do not consider the space occupied by the input and take only the extra space into account, while calculating space complexity.
That means that additional memory amount required for algorithm is not greater than some constant amount that doesn't depend on input size for sufficiently big input.