NEE's Blog

纪念 Tony Hoare (1934-2026):快速排序之父的传奇人生

March 11, 2026

本文翻译自 Tony Hoare (1934-2026),原载于 Hacker News。


上周四(2026 年 3 月 5 日),Tony Hoare 与世长辞,享年 92 岁。他是图灵奖得主、牛津大学前教授,在计算机科学领域做出了卓越贡献。对于大多数数学或计算机专业的学生来说,他的名字往往与快速排序(quicksort)算法联系在一起,但他的成就远不止于此。他在 ALGOL 语言、Hoare Logic(霍尔逻辑)等方面都有着开创性的贡献。

Jim Miles 撰写了这篇个人回忆,记录了他与 Tony Hoare 交往的点滴。

与大师的相遇

在过去的五年里,我有多次机会拜访 Tony Hoare,因为我们都住在英国剑桥,而且我发现我的家人认识他的家人。作为一名数学专业毕业生,我非常渴望能亲自聆听这位伟大科学家的故事。促使我去拜访他的另一个原因是,Computational Complexity 博客上曾有一篇文章多次提到 Tony,并总结了他的部分工作。第一次拜访时,我把那篇文章打印出来带在身边——就是上面照片中 Tony 手里那张绿色的纸。

Tony 读完后微笑了,显然对文章中提到的内容记忆犹新。他接着向我解释,程序在过去短短几十年间规模增长得如此之大,以至于现在通常需要采用与他早期开发的方法完全不同的方法论。

从古典学到计算机科学

我了解到 Tony 在大学时学的是古典学和哲学,所以我很想知道他是如何一步步走上计算机科学之路的。他解释说,完成学位后,他在”联合服务语言学校”(Joint Services School for Linguists)项目接受了高强度的俄语培训,同时也对统计学和当时新兴的、令人兴奋的计算机世界产生了浓厚兴趣。这意味着在服完兵役(基本上就是 JSSL 项目)后,他找到了一份”演示”早期计算机的工作——尤其是面向全球,包括苏联在内的地区进行演示。

他把这些演示的场所称为”博览会”(fairs),用现在的话说可能就是”科技展”(expos)。从某种意义上说,这个描述相当谦虚——回顾 Tony 的职业生涯,他实际上也参与了这些设备的代码开发。或许这是那个年代的特殊情况:作为这些机器的演示者,意味着必须对它们了如指掌,以至于能够直接参与开发团队(当然,还要会流利的俄语!)。

六便士的赌注:快速排序的诞生

我特别想从他本人那里听到的故事是那个传奇的”快速排序赌注”。故事是这样的:Tony 告诉他在 Elliott Brothers 公司的老板,他知道一种比他刚为公司实现的排序算法更快的方法。老板说:”我赌六便士你不知道!”

结果,快速排序(quicksort)确实更快。

我几乎每次见面都请 Tony 讲这个故事,因为我太喜欢了,而且每次都能让我们俩会心一笑。值得一提的是,Tony 从不厌倦从头给我讲这个故事。我本来希望能在过去一年再去拜访一次并录下来,但遗憾的是没能实现。不过我发现这个故事确实在其他地方有记录。

还有一个细节或许我能补充:我问过 Tony 那个赌注到底有没有兑现,还是只是随口说说。他确认说,他确实收到了那六便士!

这个故事中有一个细节特别能体现 Tony 谦逊的个性:在提出快速排序更快之前,他先按要求实现了那个较慢的算法——尽管他相信快速排序更快。这体现了他一贯的专业素养。

微软时期的”小秘密”

在我们见面时,大约一半的时间在讨论他的职业生涯,另一半则涉及各种各样的话题。有一次,我问起了一个从亲戚那里听来的故事:Tony 在剑桥的微软研究院工作时,有时会在下午溜出去,去当地的艺术电影院看电影。

这个故事之所以流传开来,是因为有一次在闲聊中提到了当时正在上映的一部电影,结果 Tony 说他看过,让在场的人都惊讶不已。秘密就此揭开——Tony 承认,是的,有时他会在下午偷偷去看电影,而他在微软的职位完全允许他这样做。

关于”天才”的看法

关于电影的话题,我想问问 Tony 一句网上流传的、据说是他说过的话——关于好莱坞如何描绘天才,尤其是与《心灵捕手》(Good Will Hunting)相关的。典型的说法是:”好莱坞对天才的想象是《心灵捕手》里那样:一个能瞬间解决任何问题的人。但在现实中,天才们会在同一个问题上苦思冥想多年。”

Tony 认同这个观点,即电影经常误解抽象领域(如数学)中的能力是如何通过无数小时的思考培养出来的,而不是像电影喜欢表现的那样——”天才”与生俱来的天赋。不过,他不确定自己具体在什么时候说过这话,也不清楚它是怎么传到网上的,他承认网上关于他的这类引言很可能是错误的。

一个神秘的预测

我想分享的最后一个故事或许是 Tony 说过的最引人深思的话,也是他说得最自信的一次。当我们讨论计算机未来的发展——摩尔定律是否正在触及极限、量子计算机是否需要重新推动进步,以及其他我提出的一些关于硬件的浅显话题时,他说:

“当然,我们现在拥有的任何东西,都远不及政府拥有的技术。他们总是领先你们想象得到的很多年。”

当我追问,特别是问这些技术是否已经能够解决世界密码协议所依赖的大素数分解问题时,他闪烁其词,神秘地耸了耸肩。人们不禁好奇他究竟看到了什么——或者,他可能只是在开一个玩笑。Tony 有极好的幽默感,完全能够在我意识到之前,用反讽和讽刺把我引向歧途。

最后的告别

我会非常怀念他的幽默、耐心和敏锐的头脑,正如我会怀念关于 Tony 的一切。

安息吧,Tony Hoare(1934 年 1 月 11 日 - 2026 年 3 月 5 日)


个人感想

Tony Hoare 的离世是计算机科学界的重大损失。他的故事让我感触很深:

  1. 谦逊与专业并重 - 即使他知道有更好的算法(快速排序),他仍然先完成分配给他的工作。这种职业精神值得我们学习。

  2. 跨学科背景的价值 - 从古典学、哲学、俄语到计算机科学,Tony 的跨界经历证明了多元化的知识背景可以孕育出伟大的创新。

  3. 保持好奇心和幽默感 - 直到晚年,Tony 仍然保持着敏锐的思维和幽默感,这或许是他长寿和保持创造力的秘诀之一。

  4. “六便士”的故事 - 一个小小的赌注改变了计算机科学的历史。这提醒我们,有时候看似微小的想法可能会产生巨大的影响。

Tony Hoare 留给我们的不仅是快速排序算法,还有 ALGOL 语言、Hoare Logic、CSP(通信顺序进程)等重要贡献。他为程序验证和并发编程奠定了理论基础,这些工作至今仍在影响着我们。

愿逝者安息,愿他的精神继续激励着一代又一代的计算机科学家。

comments powered by Disqus