Python排序方法的复杂性
如果我必须使用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
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最好的例子就是整个问题,因为它的最佳情况不只是空间中的一些随机子集,它们包含了大多数你认为合理的“大部分已经排序”的东西。请帮我解决这个问题。也请看,这个问题更具体一些。不是真的;方法和复杂性在特定副本中命名,您仍然可以从提供的链接中获得更多信息。