关于Python的内置sort()方法

Python中使用sort()方法构build的algorithm是什么? 是否有可能看看该方法的代码?

当然! 代码在这里 ,从函数islt开始,继续QUITE一会儿;-)。 正如克里斯的评论所暗示的,这是C代码。 你也想阅读这个文本文件的文本解释,结果等

如果你更喜欢阅读Java代码而不是C代码,那么可以看看Joshua Bloch在Java和Java中的timsort的实现(Joshua也是那个在1997年实现了仍然在Java中使用的修改过的mergesort的人,而且可以希望Java会最终切换到他最近的timsort端口)。

timsort的Java端口的一些解释在这里 ,差异在这里 (指向所有需要的文件),关键文件在这里 – FWIW,而我是一个比Java程序员更好的C程序员,在这种情况下,我发现Joshua的Java代码比Tim的C代码更具可读性;-)。

我只是想提供一个非常有用的链接,我错过了亚历克斯的其他综合答案: Python的timsort (graphics可视化!)的高层次的解释 。

(是的,algorithm现在基本上被称为Timsort )

在早期的python版本中,sort函数实现了quicksort的修改版本。 然而,它被认为是不稳定的,并且从2.3开始使用自适应合并algorithm。