鱼C论坛

 找回密码
 立即注册
查看: 20|回复: 3

[吹水] 快速排序之父「托尼·霍尔」离世,我们每天都在用他的代码。网友:编程界永远的神!

[复制链接]
发表于 3 小时前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
3 月 11 日,计算机科学界传来噩耗,快速排序算法之父、图灵奖得主托尼·霍尔(Tony Hoare) 已于 2026 年 3 月 5 日在英国剑桥逝世,享年 92 岁。

这一消息由其友人通过计算机科学权威博客 Computational Complexity 正式发布,随后被 MIT 科技评论、Solidot 等多家科技媒体证实。

Xnip2026-03-15_16-28-47.png

托尼·霍尔是 20 世纪最具影响力的计算机科学家之一。

1960 年,他发明快速排序算法,凭借高效稳定的表现成为全球使用最广泛的排序算法,至今仍内置在 Python、Java、C++ 等几乎所有主流编程语言的标准库中,支撑着互联网海量数据处理。

他还创立霍尔逻辑,为程序正确性验证奠定理论基础;

提出 CSP 并发模型,深刻影响 Go、Erlang 等现代语言设计。

1980 年,霍尔斩获计算机领域最高荣誉图灵奖,2000 年被英国女王册封为爵士。

业内熟知的是,霍尔曾公开自嘲:

游客,如果您要查看本帖隐藏内容请回复

这句坦诚的反思,成为编程界流传最广的金句之一。

从年轻时期的算法天才,到终身耕耘的学术泰斗,托尼·霍尔用简洁优雅的代码与严谨理论,重塑了现代计算机科学的根基。

他的离去,是全球技术界的重大损失。

评论区聊聊你的想法



                               
登录/注册后可看大图




如果有收获,别忘了评分


                               
登录/注册后可看大图


                               
登录/注册后可看大图
                                                                    
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 3 小时前 | 显示全部楼层
代码会迭代,算法会优化,但真正的开创者永远被铭记。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 3 小时前 | 显示全部楼层
@FishC 介绍快速排序算法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 3 小时前 | 显示全部楼层
不二如是 发表于 2026-03-15 16:31
@FishC 介绍快速排序算法


快速排序算法介绍

快速排序是一种高效的排序算法,基于“分治”思想。它的平均时间复杂度为 O(n log n),在最坏情况下为 O(n^2),但通过优化可以避免最坏情况。

基本步骤:
1. 选择基准:从数组中选择一个元素作为基准(pivot)。
2. 分区操作:重新排列数组,所有小于基准的元素移到基准左边,大于基准的元素移到右边。基准元素位于最终正确位置。
3. 递归排序:对基准左右两边的子数组递归进行快速排序。

示例代码(Python):

  1. def quick_sort(arr):
  2.     if len(arr) <= 1:
  3.         return arr
  4.     pivot = arr[len(arr) // 2]  # 选择中间元素作为基准
  5.     left = [x for x in arr if x < pivot]
  6.     middle = [x for x in arr if x == pivot]
  7.     right = [x for x in arr if x > pivot]
  8.     return quick_sort(left) + middle + quick_sort(right)

  9. # 测试
  10. arr = [3, 6, 8, 10, 1, 2, 1]
  11. sorted_arr = quick_sort(arr)
  12. print(sorted_arr)
复制代码


关键特点:
- 原地排序:可以通过原地分区实现,节省空间。
- 不稳定排序:相等元素的相对位置可能改变。
- 优化技巧:如随机选择基准或使用三数取中法来避免最坏情况。

简单解释分区过程:
假设数组 [3, 6, 1, 2, 8],选择基准为 3。分区后,小于 3 的元素在左,大于 3 的在右,例如 [1, 2, 3, 6, 8]。然后递归处理左右部分。

希望这个介绍帮助你理解快速排序!如果有更多问题,随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-15 19:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表