快速排序算法的发明者霍尔

快速排序算法的发明者霍尔_第1张图片

霍尔介绍

霍尔 (Sir Charles Antony Richard Hoare) 是一位英国计算机科学家,他也是著名的快速排序算法的发明者。他出生于斯里兰卡,1956年毕业于牛津大学。然后的两年里他服役于英国皇家海军,主要工作任务是研究俄国的现代军事,并因为这个原因开始学习俄语。在他结束服役后,他以研究生的身份进入莫斯科大学主攻计算机翻译。在莫斯科学习的一年中,因为偶然的机会他为参加展览的公司Elliott Brothers充当翻译。当他回国后,这家公司立即聘用了他,因为霍尔会俄语的缘故,公司还为他增加了工资。


快速排序算法起源

1960年代,英国国家物理实验室 (National Physical Laboratory) 开始了一项新的计划:将俄文自动翻译成英文。正好霍尔有这个经历,他与俄国的机器翻译专家相识,还在“机器翻译”(Machine Translation) 上发表过论文。于是他在那里得到了一份工作。

在那个年代,俄文到英文的词汇列表是以字母顺序存储在一条长长的磁带上的。因此,当有一段俄文句子需要翻译时,第一步是把这个句子的词按照同样的顺序排列。这样机器就可以在磁带上只走一遍就可以找到所有的翻译。霍尔意识到,他必须找出一种能在计算机上实现的排序的算法来。他想到的第一个算法是后人称作“冒泡排序 (bubble sort)”的算法。虽然他没有声明这个算法是他发明的,但他显然是独自得到这个算法的。他很快放弃了这个算法,因为它的速度比较慢。用计算复杂度理论 (Computational complexity theory) 来说,它平均需要 O(n2) 次运算。快速排序 (Quicksort) 是霍尔想到的第二个算法。这个算法的计算复杂度是 O(nlogn) 次运算。当 n 特别大的时候,显然步骤要少很多。


霍尔的其他建树

  • 霍尔本人被称为“影响算法世界的十位大师之一”
  • 由霍尔发明的快速排序算法被称为“二十世纪十大算法之一”
  • 霍尔领导了Algol 60第一个商用编译器的设计与开发,由于其出色的成绩,最终成为该公司首席科学家
  • 因霍尔对Algol 60程序设计语言理论、互动式系统及APL的贡献,1980年被美国计算机协会授予“图灵奖”
  • 2000年因为其在计算机科学与教育上做出的贡献被封为爵士

说明

  • 本篇文章参考了该文章《霍尔和快速排序法》。链接如下:http://blog.sciencenet.cn/blog-420554-552107.html
  • 如有侵权,请随时联系我,立马删除

你可能感兴趣的:(可视化算法,算法)