Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.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_Time Complexity - Fatal编程技术网

Python排序方法的复杂性

Python排序方法的复杂性,python,time-complexity,Python,Time Complexity,如果我必须使用Python中的sort方法对一些列表进行排序,比如a,如下所示 a=[3,7,1,0,2,8] a.sort() print a 排序时,此类程序的最差、平均和最佳情况是什么?它们各自有什么复杂性?python在这方面使用了什么排序技术 Python使用,以发明它的Python开发人员Tim Peters的名字命名。Wikipedia页面包含复杂信息: Worst case performance O(nlogn) Best case performance O(n) A

如果我必须使用Python中的
sort方法对一些列表进行排序,比如a,如下所示

a=[3,7,1,0,2,8]
a.sort()
print a
排序时,此类程序的
最差、平均和最佳情况是什么?它们各自有什么复杂性?python在这方面使用了什么排序技术

Python使用,以发明它的Python开发人员Tim Peters的名字命名。Wikipedia页面包含复杂信息:

Worst case performance  O(nlogn)
Best case performance   O(n)
Average case performance    O(nlogn)
Worst case space complexity O(n)

Cpython
(可能还有其他实现)使用Timsort——语言参考中唯一的要求是排序方法是稳定的。我认为可能有一两个实现会使用
mergesort
,除了最佳情况下的性能外,其复杂性几乎相同。源代码树中有一个详细描述timsort如何工作和执行的代码。内置排序函数背后的C代码。值得理解的是,Timsort最好的例子就是整个问题,因为它的最佳情况不只是空间中的一些随机子集,它们包含了大多数你认为合理的“大部分已经排序”的东西。请帮我解决这个问题。也请看,这个问题更具体一些。不是真的;方法和复杂性在特定副本中命名,您仍然可以从提供的链接中获得更多信息。