Python 中的 sort()内置方法使用什么算法?有没有可能看一下这个方法的代码?
sort()
在早期的 python 版本中,sort 函数实现了快速排序的修改版本。 然而,它被认为是不稳定的,在2.3,他们切换到使用自适应合并排序算法。
当然!代码的 给你,从函数 islt开始,继续进行一段时间; ——)。正如 Chris 的评论所暗示的,它是 C 代码。您还需要读取 这个文本文件以获得文本解释、结果等等。
islt
如果你更喜欢阅读 Java 代码而不是 C 代码,你可以看看 Joshua Bloch 在 Java 中和 Java 中的 timsort 实现(Joshua 也是那个在1997年实现了修改后的 mergesort 的家伙,这个修改后的 mergesort 仍然在 Java 中使用,人们可以希望 Java 最终会切换到他最近的 timsort 端口)。
对 timsort 的 Java 端口的一些解释是 给你,diff 是 给你(指向所有需要的文件) ,关键文件是 给你—— FWIW,虽然我是一个比 Java 程序员更好的 C 程序员,在这种情况下,我发现 Joshua 的 Java 代码总体上比 Tim 的 C 代码更易读; ——)。
我只是想提供一个非常有用的链接,我错过了亚历克斯的其他全面的答案: Python timsort 的高级解释(与图形可视化!).
(是的,这个算法现在基本上被称为 Timsort)