Python中的内置函数"sorted"是如何工作的?

3
x = [1, 4, 7, 65, 23, 57, 12]
>>> sorted(x)
[1, 4, 7, 12, 23, 57, 65]

仅出于好奇,这个函数是如何工作的?Python使用什么算法来对可迭代对象进行排序?

1个回答

9

Python曾经使用快速排序

然后,神一般的Tim Peters出现了,他拥有20级键盘和超过9000的编码技巧;在优雅和卓越的交响乐中,构建了Timsort,并将其赠送给我们这些凡人,因为没有它,我们的生命将是不完整的。


6
Timsort 是一种混合排序算法,结合了归并排序和插入排序的优点。它最初是为Python语言开发的,但现在已被广泛应用于各种编程语言和应用程序中。在排序时,Timsort会将数据分成小块,然后使用插入排序对每个块进行排序。接下来,它会使用归并排序将这些块合并成较大的块,并继续这个过程,直到整个数据集被排序。Timsort的主要优势在于它在处理具有部分排序顺序的数据时表现得非常出色,并且在处理大型数据集时速度也很快。 - Jon Clements
http://svn.python.org/projects/python/trunk/Objects/listsort.txt - Kracekumar
不,这不仅仅是“... Tim Peters来了...”。应该是“...强大的Tim Peters 来了...”。 :-) - Matthias
2
@inspectorG4dget:是的,这是一个Pythonic的解释。 - Matthias
1
只是注意到listsort.txt当前版本添加了一些注释,以解决常见的混淆问题。 - Tim Peters
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接