Mergesort, si se implementa para crear matrices en las llamadas recursivas, creará muchas de ellas, pero no coexistirán al mismo tiempo. En cada llamada recursiva, crea una matriz (o 2 dependiendo de una implementación) para fusionar y no ocupan más que O (n) espacio, y luego, cuando se realiza la fusión, estas matrices se eliminan y se crearán algunas nuevas después de un momento en alguna otra llamada recursiva. Si contó cuánto espacio ocuparon todos los arreglos que alguna vez se crearon, sería O (n log n), pero no necesita preocuparse por esta información; no necesita más que O (n) espacio, porque cuando necesita crear una matriz, todos los demás ya no existen y no ocupan memoria. Tenga en cuenta que simplemente puede declarar 2 o 3 matrices al principio, cada una de la longitud de n, y luego almacenar la secuencia en una de ellas, mientras usa la otra para fusionar, mejorará el rendimiento y le mostrará más allá dudo que no haya necesidad de más de O (n) de memoria.
Algoritmos: ¿Cómo la combinación de ordenamiento tiene complejidad espacial O (n) para el peor de los casos?
Related Content
Cómo evitar que el algoritmo de google para 'quiso decir' afecte mi sitio
Cómo resolver radicales anidados como [math] (a + \ sqrt b \,) ^ {1/3} [/ math]
En la ordenación por fusión cuando estamos fusionando la matriz ordenada 2 creamos 2 matrices temporales. L [] = Arr [izquierda, mitad] (matriz izquierda) para almacenar temporalmente la matriz anterior de izquierda a mitad (mitad izquierda ordenada) y R [] = Arr [media + 1, derecha] (matriz derecha) para almacenar temporalmente matriz anterior de medio + 1 a la derecha (ordenada a la mitad derecha), luego fusionamos las dos matrices temporales en la original.
El hecho de que creamos 2 matrices temporales para almacenar los números de la matriz original, ya que la matriz original tiene n elementos, las matrices temporales son de tamaño n respectivamente y, por lo tanto, el espacio extra de ny una complejidad de espacio O (n).
El espacio original de la matriz no se tiene en cuenta al calcular la complejidad del espacio de un algoritmo de clasificación.
More Interesting
¿Qué algoritmos de Machine Learning pueden usarse para el aprendizaje supervisado incremental?
¿Cuál es la diferencia entre un tipo estable e inestable?
¿Qué algoritmos son más importantes para un concursante de ACM ICPC?
¿Qué técnica general siguen los autores al escribir libros técnicos en LaTeX?
Cómo encontrar la subcadena común más larga de tres o más cadenas usando una matriz de sufijos
¿Existe algún algoritmo o método para identificar patrones en una secuencia de filas / eventos?
¿Deep Blue fue un algoritmo o una IA o ambos?
¿Cómo se realiza la coincidencia de cadenas en SQL?