Python 内置的 sort() 方法使用什么算法?
- 2025-01-22 08:45:00
- admin 原创
- 65
问题描述:
Python 中的内置sort()
方法使用什么算法?是否可以查看该方法的代码?
解决方案 1:
当然!代码在这里,从函数开始islt
,持续了相当长一段时间;-)。正如 Chris 的评论所暗示的那样,它是 C 代码。您还需要阅读此文本文件以获取文本解释、结果等。
如果您更喜欢阅读 Java 代码而不是 C 代码,那么您可以看看 Joshua Bloch 在 Java 中实现的 timsort(Joshua 也是在 1997 年实现了修改后的合并排序的人,该排序至今仍在 Java 中使用,人们可以希望 Java 最终将切换到他最近移植的 timsort)。
这里有一些关于 timsort 的 Java 端口的解释,差异在这里(带有指向所有需要的文件的指针),关键文件在这里- 仅供参考,虽然我的 C 程序员水平比 Java 程序员高,但在这种情况下,我发现 Joshua 的 Java 代码总体上比 Tim 的 C 代码更具可读性 ;-)。
解决方案 2:
在早期版本的 Python 中,该sort
函数实现了快速排序的修改版本。然而,在 2.3 版中,它被自适应合并排序算法取代,以便默认提供稳定的排序。
解决方案 3:
从 Python 3.11 版开始,sort()
现在使用powersort的一个版本,这是一种利用运行的合并排序算法:数据中已排序值的序列。当长度小于 64 时,Python 会切换到二进制插入排序。
python 实现细节:https ://github.com/python/cpython/blob/main/Objects/listsort.txt
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD