首页 >> 生活 >

计算机科学家改进 Python 排序功能

2022-12-19 16:33:27 来源: 用户: 

利物浦大学计算机科学家解决了一个长期存在的算法难题,以加速 Python 的核心构建块,Python 是最 流行的编程语言 ,也是现代人工智能系统的基础。

这一发现导致了一种更好的 Python 列表排序解决方案,称为 Powersort,它已在 Python 3.11(10 月发布的最新版本)中实现。

Powersort 通过“list.sort”和“sorted”函数按升序排列对象列表, 利物浦大学计算机科学系讲师Sebastian Wild 博士负责其发明。

Wild 博士一直在研究 TimSort,这是一种由有影响力的 Python 开发人员 Tim Peters 发明的自定义排序算法,特别是它的合并策略,它确定检测到的运行被连续“合并”以形成更长运行的顺序,直到最终列表是完全排序。

Wild 博士对其合并策略知之甚少感到惊讶,因为它甚至潜伏着一个算法错误和潜在的安全问题。事实证明,这个关键部件后来被发现存在缺陷。

Wild 博士和他当时的博士后导师,加拿大滑铁卢大学的 Ian Munro 教授之间的讨论发现,一个 20 世纪 70 年代的理论算法 为寻找好的合并顺序的问题提供了最优解。

这一发现导致了“Powersort”的诞生,它最初发表在 2018 年欧洲算法研讨会上,并在它成为 Python 参考实现之前由 Python 社区进一步审查。

Wild 博士说:“我很高兴我的研究已付诸实践,并已在 Python 3.11 中实现。我通过调查 Timsort 的工作偶然发现了找到好的合并订单的解决方案。在找到具有 50 年历史的算法一周后,‘Powersort’ 诞生了。”

“我很高兴 Tim Peters 亲自将我们的想法带入了 CPython 参考实现。他的 Timsort 实现 是算法工程的杰作,没有人像他一样了解这段代码。”

Carl Friedrich Bolz-Tereick 是 Python 软件基金会的成员,也是 Python 的另一种实现 PyPy 的核心开发人员,他补充说:“Powersort 是一个很好的例子,说明 Python 的开源特性如何使我们能够非常快速地带来前沿研究对每个人的生产使用的调查结果。当我了解 Powersort 时,我可以在几天内将它包含到 PyPy 中。

“随着今年 10 月 Python 3.11 的正式发布,数亿用户现在将享受到排序速度变得越来越快。尽管许多输入的改进很小,但 Python 安装的绝对数量可以在全球范围内带来显着的节能效果。”

Timsort 还用于其他重要的软件平台,包括用于大多数智能手机的 Java 和 Android 运行时库,以及用于 Google Chrome 和 node.js 的 V8 JavaScript 引擎,驱动许多现代 Web 应用程序,这些应用程序都可以从 Powersort 中获益.

  免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!

 
分享:
最新文章