Python中内置的sort()
方法使用了什么算法?是否可以查看该方法的代码?
Python中内置的sort()
方法使用了什么算法?是否可以查看该方法的代码?
好的! 这里是代码,从函数islt
开始,一直持续了相当长的时间;-)。正如克里斯的评论所建议的那样,这是C代码。 您还需要阅读此文本文件以获取文字解释、结果等等。
如果您更喜欢阅读Java代码而不是C代码,您可以查看Joshua Bloch在Java中实现的timsort(1997年他还实现了修改后的mergesort,在Java中仍然使用,人们可以希望Java最终会转换为他最近移植的timsort)。
Java移植timsort的一些解释在这里,差异在这里(其中包含所有必需的文件指针),关键文件在这里--顺便说一句,虽然我是一个比Java程序员更好的C程序员,但在这种情况下,我发现Joshua的Java代码总体上比Tim的C代码更易读;-)。
list_ass_item()
函数是做什么的。 :) - Chris Lutzlistsort.txt
的当前版本添加了一些注释,以解决常见的困惑。 - Tim Peterssort
函数实现了一个修改版的快速排序算法。然而,在2.3版本中,为了提供默认情况下的稳定排序,它被替换成了自适应归并排序算法。stable
sort()
方法,或者解释器的格式是什么,但它一定存在于某个地方,并且我敢打赌为了速度考虑它是用C实现的。 - Chris Lutz