不二如是 发表于 2017-1-25 08:05:38

东尼·霍尔 Tony Hoare -快速排序算法、霍尔逻辑、交谈循序程式之父

本帖最后由 不二如是 于 2017-1-29 10:01 编辑


1934.1.11 - 至今

英国计算机科学家,图灵奖得主。

小时候在英国本土受教育。

他设计了快速排序算法、霍尔逻辑、交谈循序程式。

快速排序步骤:


在平均状况下,排序 n 个项目要Ο(n log n)次比较。

在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。

事实上,快速排序通常明显比其他Ο(n log n) 算法更快!

因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。

快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。

1 从数列中挑出一个元素,称为 “基准”(pivot)。

2 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。

在这个分区退出之后,该基准就处于数列的中间位置,这个称为分区(partition)操作。

3 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。

虽然一直递归下去,但是这个算法总会退出,因为在每次的迭代(iteration)中,它至少会把一个元素摆到它最后的位置去。




[*]成就

1956年,在牛津大学墨顿学院取得西洋古典学学士学位。

在大学毕业后,进入英国皇家海军服兵役18个月,在此学会俄语。

1958年,退伍后,回到牛津大学,研读统计学,取得学士后学位。

在此期间,开始学习程式设计。为了进一步学习俄语,他以英国文化协会的交换学生身份。

至苏联莫斯科国立大学留学,跟随安德雷·柯尔莫哥洛夫学习数学,并研究机器翻译。

1960年,在莫斯科国立大学取得博士学位后,任职于伦敦艾略特兄弟公司(Elliott Brothers Ltd)。

开发出第一个商用的ALGOL 60编译器,很快就成为公司的首席工程师。

1968年,成为贝尔法斯特女王大学的教授。

1977年,回到牛津大学担任教授。

现为牛津大学荣誉教授,并在剑桥微软研究院担任研究员。

页: [1]
查看完整版本: 东尼·霍尔 Tony Hoare -快速排序算法、霍尔逻辑、交谈循序程式之父