¿Qué complejidad de espacio toma el ordenamiento de python? No puedo encontrar ninguna documentación definitiva sobre esto en ninguna parte.
La complejidad del espacio se define como la cantidad de espacio adicional que necesita el algoritmo en términos de los N elementos. Y aunque de acuerdo con los documentos , el método de sort ordena una lista en su lugar, usa algo de espacio adicional, como se indica en la descripción de la implementación:
timsort puede requerir una matriz temporal que contenga hasta N//2 punteros, lo que significa hasta 2*N bytes adicionales en cajas de 32 bits. Se puede esperar que requiera una matriz temporal de este tamaño al ordenar datos aleatorios; en datos con una estructura significativa, puede salirse con la suya sin usar ninguna memoria de almacenamiento adicional.
Por lo tanto, la complejidad del espacio en el peor de los casos es O(N) y en el mejor de los casos O(1)
El método de ordenación incorporado de Python es un derivado de la ordenación por combinación llamada Timsort, más información aquí: https://en.wikipedia.org/wiki/Timsort .
Esencialmente, no es mejor ni peor que la ordenación por combinación, lo que significa que su tiempo de ejecución en promedio es O(n log n) y su complejidad espacial es Ω(n)