128

可能重复:
关于 python 的内置 sort() 方法

名字说明了一切。

我试图向某人解释为什么他们应该使用 Python 的内置 sorted() 函数而不是自己滚动,我意识到我不知道它使用什么算法。

如果重要的话,我们说的是python 2.7

4

3 回答 3

225

Python 使用一种称为Timsort的算法:

Timsort 是一种混合排序算法,源自合并排序和插入排序,旨在在多种现实世界数据上表现良好。它是由 Tim Peters 于 2002 年发明的,用于 Python 编程语言。该算法找到已经排序的数据子集,并使用这些子集更有效地对数据进行排序。这是通过将已识别的子集(称为运行)与现有运行合并来完成的,直到满足某些标准。Timsort 自 2.3 版以来一直是 Python 的标准排序算法。它现在还用于在 Java SE 7 和 Android 平台上对数组进行排序。

于 2012-06-08T12:35:20.693 回答
14

排序算法称为 Timsort。见timsort

于 2012-06-08T12:35:58.903 回答
13

从 2.3 Python 开始使用 timsort。

更多信息:http ://bugs.python.org/file4451/timsort.txt

于 2012-06-08T12:37:52.183 回答