Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python排序的空间复杂度是多少?_Python_Sorting_Space Complexity - Fatal编程技术网

python排序的空间复杂度是多少?

python排序的空间复杂度是多少?,python,sorting,space-complexity,Python,Sorting,Space Complexity,python排序需要多少空间复杂度?我在任何地方都找不到关于这个的任何权威文档Python的内置排序方法是名为Timsort的合并排序的派生,更多信息请参见- 它本质上并不比合并排序更好或更差,这意味着它的运行时间平均为O(n logn),它的空间复杂度为Ω(n)空间复杂度定义为算法在n元素方面需要多少额外空间。而且,即使根据排序方法,排序方法对列表进行适当排序,但它确实会使用一些额外的空间,如实现的中所述: timsort可能需要一个包含多达N//2个指针的临时数组,这意味着32位框上有多达2

python排序需要多少空间复杂度?我在任何地方都找不到关于这个的任何权威文档

Python的内置排序方法是名为Timsort的合并排序的派生,更多信息请参见-


它本质上并不比合并排序更好或更差,这意味着它的运行时间平均为
O(n logn)
,它的空间复杂度
Ω(n)
空间复杂度定义为算法在
n
元素方面需要多少额外空间。而且,即使根据排序方法,排序方法对列表进行适当排序,但它确实会使用一些额外的空间,如实现的中所述:

timsort可能需要一个包含多达N//2个指针的临时数组,这意味着32位框上有多达2*N个额外字节。在对随机数据进行排序时,可能需要一个如此大的临时数组;对于具有重要结构的数据,它可以不使用任何额外的堆内存就可以离开


因此,最坏情况下的空间复杂度是
O(N)
和最佳情况下的
O(1)

。。。这并不能回答问题。好吧,你肯定是在对占用内存空间的东西进行排序。是的,你当然是,但空间复杂度是在所需的额外内存中度量的,所以不是数组本身。尽管如此,我还是看了一下实现描述,发现它们确实使用了一些额外的空间来实现算法。我的答案也相应地更新了