python的sorted()使用什么算法? [重复]

问题描述 投票:0回答:3

在Python 2.7中,Python的内置

sorted
函数是如何工作的——它使用什么算法?

python sorting
3个回答
259
投票

旧版本的 Python (2.3 - 3.10) 使用一种名为 Timsort:

的算法

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

从 3.11 开始,Python 使用由 Ian Munro 和 Sebastian Wild 设计的 Powersort。它是一种改进的近乎最优的合并排序,可以适应现有的排序数据运行。


15
投票

排序算法称为 Timsort。请参阅timsort


13
投票

从 2.3 Python 开始使用 timsort。

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

© www.soinside.com 2019 - 2024. All rights reserved.