前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >读完这7本算法书,你也可以像这10位算法大师一样改变世界

读完这7本算法书,你也可以像这10位算法大师一样改变世界

作者头像
IT阅读排行榜
发布2018-09-29 11:05:21
1.4K0
发布2018-09-29 11:05:21
举报
文章被收录于专栏:华章科技华章科技

导读:算法是整个计算机科学的基石,是计算机处理信息的本质。从开创算法分析这一领域的高德纳、Amazon的“首席算法官”乌迪·曼伯尔,到发明快速排序算法托尼·霍尔,本文介绍了对AI、以及整个计算领域影响深远的十位算法大师。

作者:范凯,马林

来源:《程序员》杂志

01 改变世界的十位算法大师

1. Don E.Knuth 高德纳

算法和程序设计技术的先驱者。Oh,God!一些国外网站这样评价他。一般说来,不知道此人的程序员是不可原谅的。其经典著作《计算机程序设计艺术》更是被誉为算法中“真正”的圣经,像KMP和LR(K)这样令人不可思议的算法,在此书比比皆是。难怪连Bill Gates都说:“如果能做对书里所有的习题,就直接来微软上班吧!”

对于Don E.Knuth本人,一生中获得的奖项和荣誉不计其数,包括图灵奖,美国国家科学金奖,美国数学学会斯蒂尔将(AMS Steel Prize),以及发明先进技术荣获的极受尊重的京都奖(KyotoPrize)等等,写过19部书和160余篇论文,每一篇著作都能用影响深远来形容。同时也是世上少有的编程达到40年以上的程序员之一。他除了是技术与科学上的泰斗外,更是无可非议的写作高手,技术文章堪称一绝,文风细腻,讲解透彻,思路清晰而且没有学究气,估计这也是《计算机程序设计艺术》被称为圣经的原因之一。

2. Udi Manber 乌迪·曼伯尔

他是首席算法官,世界上还有如此奇怪的职位?但是对于Amazon乃至Google来说,这一点也不奇怪。Udi Manber,这位前Amazon的“首席算法官”,现在是Google负责工程事务的副总裁。他研究WWW的应用程序、搜索以及隐藏在这背后的算法设计。在此期间,他与其他人共同开发了Agrep、Glimpse和Harvest等Unix上的搜索软件。1998年,Udi成为了Yahoo!的首席科学家。2002年,Amazon创造性地给了Udi“首席算法官”的职位,和Udi为Amazon的“SearchInside the Book”搜索项目所做的工作相得益彰。

3. Edsger Wybe Dijkstra 艾兹格·迪科斯彻

1930年出生于荷兰阿姆斯特丹,2002年逝世于荷兰纽南。他在祖国荷兰获得数据和物理学学士,理论物理博士学位,2000年退休前一直是美国Texas大学的计算机科学和数学教授。以发现了图论中的最短路径算法(Dijkstra算法)而闻名于世,1972年因为ALGOL第二代编程语言而获得图灵奖。“Go To StatementConsidered Harmful”(EWD215)也是被广为传颂的经典之作。除了科学研究之外,他最喜欢做的事情就是教学,被人称作“一天教学24小时”的教授。

且不说Dijkstra算法对计算科学,网络科学发展的深远影响,单从他在1972年获得图灵奖时的演讲“The Humble Programmer”就不得不肃然起敬,在获得计算机科学中至高无上的奖项时,Edgs Wybe Dijkstra仍然称自己不过是一个谦逊普通的程序员,何等胸襟,举世之中几人可比。

4. George Dantizig 乔治·伯纳德·丹齐格

运筹学大师,由他父亲一手培养出的天才。George的父亲是俄国人,曾在法国师从著名的科学家Henri Poincare。他曾经这样回忆自己的父亲:“在我还是个中学生时,他就让我做几千道几何题……解决这些问题的大脑训练是父亲给我的最好礼物。这些几何题,在发展我分析能力的过程中,起了最最重要的作用。”

在伯克利学习的时候,有一天George上课迟到,只看到黑板上写着两个问题,他只当是课堂作业,随即将问题抄下来并做出解答。六个月后,这门课的老师——著名的统计学家Jerzy Neyman——帮助他把答案整理了一下,发表为论文,George这才发现自己解决了统计学领域中一直悬而未决的两个难题。

George后来在运筹学建树极高,获得了包括“冯诺伊曼理论奖”在内的诸多奖项。他在Linearprogramming and extensions一书中研究了线性编程模型,为计算机语言的发展做出了不可磨灭的贡献。天妒英才,他于2005年5月13日去世。

5. James Cooley

美国数学家,哥伦比亚大学的数学博士,以他所创造的快速傅立叶变换(FFT)而著名,不能不说是意义极其重大,FFT的数学意义不光在于使大家明白了傅立叶(Fourier)变换计算起来是多么容易,而且使得数字信号处理技术取得了突破性的进展,对于现在的网络通信,图形图像处理等等领域的发展与前进奠定了基础。

Fourier变化的意义在于将电能变为了工业的命脉,而FFT的意义更是在于他推动了整个社会信息化的进程。在IBM研究中心中主要从事数字信号处理的研究一直到1992年退休,同时他还是IEEE的数字信号处理委员会的成员。1980年获得ASSP's Meritorious Service Award, 1984年获得ASSP Society Award以及IEEE Centennial Medal。

6. John Backus 约翰·巴克斯

FORTRAN之父,早年在Hill School学习的时候因为讨厌学习,成绩一踏糊涂而不得不在暑假补课。1943年他在父亲的要求下到维吉尼亚大学学习化学,随后参军、照顾头部受伤的伤员、在医学学校学习治疗,可是最后又都放弃了。不过还好,战后Backus进入纽约哥伦比亚大学学习数学,并于1949年毕业。在毕业前夕,他跑到了麦迪逊大街的IBM计算机中心参观。事情凑巧,和导游聊天的时候Backus谈到自己正在找工作,在导游的鼓励下,他和中心一位主管的面谈,成为了一名IBM的程序员。

在IBM,Backus的才华得到了施展,发明了人类历史上第一个高级语言——FORTRAN。接着,又提出了规范描述编程语言语法的BNF。这位当年的“差生”终于被整个计算机世界肯定——美国计算机协会于1977年授予John Backus图灵奖。

7. Jon Bentley

他写作过三本编程书籍,其中最著名的就是涵盖从算法理论到软件工程各种主题的Programming Pearls(《编程珠玑》),这其实是他发表过的文章的合集。在这些文章里,Jon从工程实现的角度出发,为程序员们提供了一个个艰难问题的解决方案,犹如一颗颗闪闪发亮的珍珠。Bentley的珍珠超出了可靠工程学的范畴,利用他的洞察力和创造力为那些恼人的问题提供了独特而巧妙的解决方案。

8. Nicklaus Wirth 尼古拉斯·沃斯

Pascal之父,如果说有一个人因为一句话而得到了图灵奖,那么这个人应该就是NicklausWirth,这句话就是他提出的著名公式“算法+数据结构=程序”。这个公式对计算机科学的影响程度足以类似物理学中爱因斯坦的“E=MC^2”——一个公式展示出了程序的本质。

Nicklaus Wirth,1934年出生于瑞士,1963年在加州大学伯克利分校取得博士学位。取得博士学位后直接被以高门槛著称的斯坦福大学聘到刚成立的计算机科学系工作。在斯坦福大学成功的开发出Algol W以及PL360后,爱国心极强的Nicklaus Wirth于1967年回到祖国瑞士,第二年在他的母校苏黎世工学院他创建与实现了Pascal语言——当时世界上最受欢迎的语言之一。

后来他的学生Philipe Kahn毕业后和Anders Hejlsberg(Delphi之父)创办了Borland公司靠Turbo Pascal起家,很快成为了将Borland发展成为全球最大的开发工作厂商,这一切都不得不说要归工于PASCAL语言的魅力。PASCAL已经影响了整整几代的程序员,Nicklaus Wirth的思想还将会继续指引现在和以后的程序员前进的方向。

9. Robert Sedgewick 罗伯特·塞奇威克

算法的讲解者——是普林斯顿大学的计算机科学教授。他还是Adobe Systems的一名主管,也曾作为访问学者在Xerox PARC、IDA和INRIA工作。他在斯坦福大学获得博士学位。他的著作包括Algorithm in C、Algorithm in C++、Algorithm in Java等系列书籍,这些都再版多次。“没有人能够将算法和数据结构解释得比Robert Sedgewick更清楚易懂了!”很多读过他著作的程序员这样说。

目前Robert正在研究算法设计、数据结构、算法分析等方面的基础理论。他善于通过数学方法评估和预测算法性能,设法发现算法、数据结构的通用机制,例如使用逼近方法寻找更快速更高效的算法。另外,他还将算法和图形学结合起来,例如使用可视化方法评估算法效率,算法的图形化模拟,用于出版物的高质量算法表现方法等等。

10. Tony Hoare 托尼·霍尔

计算机领域的爵士,1934年出生于英国,1959年博士毕业于俄罗斯莫斯科国立大学,获得语言机器翻译专业学士学位。1960年发布了使他闻名于世的快速排序算法(Quick Sort),这个算法也是当前世界上使用最广泛的算法之一。

Tony Hoare在取得博士学位后,就职于Elliott Brothers,领导了Algol 60第一个商用编译器的设计与开发,由于其出色的成绩,最终成为该公司首席科学家。从1977年开始,Tony Hoare博士任职于牛津大学,投身于计算系统的精确性的研究、设计及开发。因其对Algol 60程序设计语言理论、互动式系统及APL的贡献,1980年被美国计算机协会授予“图灵奖”。

1999年在牛津大学退学后,Tony Hoare博士被微软剑桥研究院聘请担任高级程序员,从事微软剑桥研究院研究生成果的工业化应用的工作,以及协助其它研究人员进行服务于软件产业及用户的长期基础研究项目。2000年因为其在计算机科学与教育上做出的贡献被封为爵士。

02 关于算法的7本经典著作

大师们改变了世界,但实际上,世界每天都在发生变化,这其中,也有你贡献的一份力量。你可以读一读这7本经典的算法书,然后继续追随大师的脚步,跟他们一起改变世界。

1

《算法导论》(原书第3版)

作者: 托马斯·科尔曼 等

推荐语:超过50万人阅读的算法圣经!算法标准教材,国内外1000余所高校采用。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。

关于作者:托马斯·科尔曼,达特茅斯学院计算机科学系教授、系主任。目前的研究兴趣包括:算法工程、并行计算、具有高延迟的加速计算。他分别于1993年、1986年获得麻省理工学院电子工程和计算机科学博士、硕士学位,师从Charles E. Leiserson教授。由于他在计算机教育领域的突出贡献,Cormen教授荣获2009年ACM杰出教员奖。

查尔斯·雷瑟尔森,麻省理工学院计算机科学与电气工程系教授,Margaret MacVicar Faculty Fellow。他目前主持MIT超级计算技术研究组,并是MIT计算机科学和人工智能实验室计算理论研究组的成员。他的研究兴趣集中在并行和分布式计算的理论原理,尤其是与工程现实相关的技术研究。Leiserson教授拥有卡内基·梅隆大学计算机科学博士学位,还是ACM、IEEE和SIAM的会士。

2

《算法基础:打开算法之门》

作者:托马斯·科尔曼

推荐语:超过50万人阅读的算法圣经!算法标准教材,国内外1000余所高校采用。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。

关于作者:托马斯·科尔曼,达特茅斯学院计算机科学系教授、系主任。目前的研究兴趣包括:算法工程、并行计算、具有高延迟的加速计算。他分别于1993年、1986年获得麻省理工学院电子工程和计算机科学博士、硕士学位,师从Charles E. Leiserson教授。由于他在计算机教育领域的突出贡献,Cormen教授荣获2009年ACM杰出教员奖。

3

《机器学习算法》

作者:朱塞佩·博纳科尔索

推荐语:本书采用理论与实践相结合的方式,在简明扼要地阐明机器学习原理的基础上,通过大量实例介绍了不同场景下机器学习算法在scikit-learn中的实现及应用。书中还有大量的代码示例及图例,便于读者理解和学习并实际上手操作。另一方面,书中还有很多的延伸阅读指导,方便读者系统性地了解机器学习领域的现有技术及其发展状态。

关于作者:朱塞佩·博纳科尔索(Giuseppe Bonaccorso),拥有12年机器学习和大数据方面的经验,担任过公共管理、军事、公用事业、医疗保健、诊断和广告等多个业务领域的IT工程师,使用Java、Python、Hadoop、Spark、Theano和TensorFlow等多种技术进行过项目开发与管理。他的主要研究兴趣包括人工智能、机器学习、数据科学等。

4

《算法设计与应用》

作者:迈克尔T.古德里奇 罗伯特·塔马契亚

推荐语:既有算法的经典内容,也有现代专题,举自现实世界问题的例子,提供三种类型的练习。

关于作者:Michael Goodrich,加州大学欧文分校计算机科学系首席教授,在这之前他是约翰霍普金斯大学的教授。他的研究兴趣包括算法的分析、设计和实现,以及数据安全、云计算、绘图和计算几何。他是AAAS、ACM和IEEE会士,曾荣获IEEE计算机协会技术成就奖和ACM卓越服务奖等。

Roberto Tamassia,布朗大学计算机科学系Plastech教授,布朗几何计算中心主任。他的研究兴趣包括数据安全、应用密码学、云计算、算法、绘图,以及计算几何的分析、设计和实现。他是AAAS、ACM和IEEE会士,曾荣获IEEE计算机学会技术成就奖。

5

《算法技术手册》(原书第2版)

作者:乔治·海涅曼 加里·波利切

推荐语:伍斯特理工学院教授合力打造的算法学习必备手册;提供高效的代码解决方案,轻松应用于实践。

关于作者:George T. Heineman,伍斯特理工学院计算机科学系副教授, 曾于2005年任国际组件软件工程研讨会的议程主席。

Gary Pollice 伍斯特理工学院的实践教授,《深入浅出面向对象与设计》(Head First Object Oriented Analysis and Design)的合著者。

Stanley Selkow,有着40年的大学教龄,他所从教的大学遍布于加拿大蒙特利尔、中国重庆、瑞士洛桑和法国巴黎。

6

《图解算法》

作者:俞征武

推荐语:本书以轻松的对话方式,采用图解的辅助说明,帮助读者简单且自然地掌握算法的基本概念,并养成主动思考的习惯,达到用算法解决实际问题的目的。

关于作者:俞征武,男,信息工程系教授,博士,主要教学和研究领域为图形学算法、无线网络等。

7

《推荐系统:技术、评估及高效算法》

作者:弗朗西斯科·里奇 等

推荐语:融合不同领域专家学者的理论成果和实践经验,全面介绍推荐系统的主要概念。

关于作者:弗朗西斯科·里奇,意大利博尔扎诺自由大学计算机科学副教授。目前他的研究兴趣包括推荐系统、智能接口、移动系统、机器学习、案例推理、信息和通信技术在旅游中的应用。

利奥·罗卡奇,以色列本-古里安大学信息系统工程系助理教授。他是智能信息系统方面公认的专家,在这一领域处于领先地位。他的主要研究领域包括数据挖掘、模式识别和推荐系统。

布拉哈·夏皮拉,以色列本-古里安大学信息系统工程系助理教授。目前她的研究兴趣包括推荐系统、信息检索、个性化、用户建模和社交网络。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据DT 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档