每日一书|《算法设计》:算法入门之选
Posted 《新程序员》编辑部
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一书|《算法设计》:算法入门之选相关的知识,希望对你有一定的参考价值。
杜甫诗云:“读书破万卷,下笔如有神”。开发者多读书、读好书,能打好基础、掌握实践、答疑解惑、拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。
算法思想无处不在,在计算机科学和其他领域中的体现都很明显。
因特网路由标准的一些主要变化,可以看成是人们对一种最短路径算法的不足和另一种算法的相对优势的争论。生物学家用于表示基因和基因组之间相似性的基本概念是用算法定义的。经济学家对组合拍卖在实践中的可行性所表达的担忧,部分原因是在一些特殊情况下,这些拍卖包含计算难解的搜索问题。
甚至,你每天早上一边刷牙、洗脸、吃早餐,一边计算着时间以免迟到都是算法。在更深的层面上,算法这一主题是一个强大的“镜头”,透过它可以查看计算机科学领域。
有这样一本算法书,美亚4.5星,豆瓣9.0分,畅销15年,国外Cornell等多所高校以及国内清华姚班都将它选作教材,口碑与质量齐飞,深受读者热爱,那就是Cornell大神Kleinberg的《算法设计》(Algorithm Design),一本最适合入门的经典算法书!
01 《算法设计》四大特色
▌ 强调问题分析和设计方法
本书倡导如何在不同计算领域的复杂问题中识别算法问题的清晰描述形式,并针对由此产生的问题建议如何设计有效的算法。
通过重新整理思路(包括错误的起点和死胡同),从最简单的初始方法到最终的解决方案,能够更好地理解复杂算法,正是“理解了what和why, how自然水到渠成”。
本书带入的算法研究,始于各种计算应用程序中出现的问题,构建在对算法设计技术理解基础之上,最终得到这些问题的有效解决方案。
▌ 遵循结构化教学法
本书遵循结构化教学法,引导学生掌握问题形式化、算法设计和算法分析的全过程,力求通过分析真实世界的问题来激发算法思想。
两位作者以一种清晰、直接的方式,指导读者自己分析和定义问题,并从中找出适用于给定场景的算法设计原则,鼓励大家更深入地理解算法设计过程,探索算法在计算机科学的更广阔领域中的应用。
▌ 联系实际,示例丰富
本书对每种算法理论和技术采用多个典型范例进行分析,强调用实际示例阐明枯燥的算法理论,从实际问题出发,经过深入具体的分析引出相应算法的设计思想。
示例丰富,代表性的例子包括系统和网络的应用程序(缓存、交换、互联网上的域间路由),人工智能(规划、博弈、霍普菲尔德网络),计算机视觉(图像分割),数据挖掘(变更点检测、聚类),运筹学(航线调度),以及计算生物学(序列比对、RNA 二级结构)等。
▌ 问题解答
大多数书籍都具有相当多的练习题以及问题,但都缺少解答或者解答得不全面,本书的“带解答练习”完美地解决了这个问题。
本书共包含200个问题,几乎都是在康奈尔大学算法课程的课外作业中被开发,或者课堂测验的考试题目,其中部分题目出自Yahoo!和Oracle等公司。
“带解答的练习”部分讨论一个或多个问题,并描述如何形式化一个解,包括带完整解释的算法、运行时间的分析和正确性的证明。
另外,本书可以提供由普林斯顿大学的Kevin Wayne开发的一套教学用PPT(需要本人邮件申请)。它是按照本书章节的顺序组织的,如果是教师参考,还可以将此作为课堂教学的材料。
02 经典教材,好评如潮
《算法设计》在美亚拥有4.5星的高评分,英文版图书在豆瓣也获得9.0的高分。读者大呼相见恨晚!
专家表示非常肯定!
03 作者介绍
乔恩·克莱因伯格(Jon Kleinberg),在1996年获得了麻省理工学院的博士学位,目前是康奈尔大学计算机科学教授。
1995年,乔恩开始在IBM研究院做研究,主攻网络与信息组合结构的数学分析与建模。
他的研究集中在算法上,特别是与网络结构和信息相关的算法,以及这些算法在信息科学、优化、数据挖掘及计算生物学等方面的应用。他利用信息中心和权威信息进行网络分析的工作,对形成最新一代因特网搜索引擎的基础起了很大的作用。
在计算机领域,乔恩获奖无数。美国国家科学基金会事业奖、海军研究局青年研究员奖、IBM杰出创新奖、奈望林纳奖等知名奖项都被他收入囊中。
另一位作者伊娃也是康奈尔大学的计算机科学教授,同时还是一名数学家。
1981年,伊娃于匈牙利的罗兰大学攻读博士学位。在2006年,伊娃开始担任康奈尔大学计算机科学系的院长。2007年,伊娃当选为美国国家工程院、文理科学院和美国哲学学会的院士。同时她也是ACM院士。
伊娃是富尔克森奖、乔治·B·丹齐格奖、哥德尔奖和EATCS奖的获得者。在2019年,伊娃还被授予了IEEE约翰·冯·诺依曼奖章。
伊娃的研究兴趣主要集中在图和网络问题的算法设计和分析上。她因在网络流算法和网络问题的近似算法方面的工作而闻名,其中包含算法博弈论,这是一个新兴领域,关注为自私用户设计系统和算法。
乔恩和伊娃都是拥有丰富算法经验的科学家,在计算机领域颇有建树。而他们二人合著的《算法设计》也成为了康奈尔大学等众多高校的课程教材。
04 适合读者
本书虽然不适合“纯零基础”者阅读,但是对于入门者来说有很强的基础性,从最经典的典型问题,例如区间调度、加权区间调度、二分匹配、独立集和竞争设施问题等开始一一解析。专门用一章讲解图的定义和应用,将实现遍历、有向无环图、拓扑排序等进行详细地讲解,为后面学习打下坚实基础。
总之,无论你对算法学习有什么样的追求,都会发现这本书是一本读起来令人愉快且有用的指南针,快来开启算法之旅吧!
内容简介:
这是一本关于算法设计和分析的经典教材。本书围绕算法设计进行组织,对每种算法技术用多个典型范例进行分析,把算法的理论跟实际问题结合起来,具有很大的启发性。本书侧重算法设计思路,每章都从实际问题出发,经过深入具体的分析引出相应算法的设计思想,并对算法的正确性和复杂性进行合理的分析和论证。本书覆盖面广,且含有200多道精彩的习题,最后还扩展了PSPACE问题、参数复杂性等内容。
(声明:本文转载自人民邮电出版社IT专业图书旗舰品牌“异步图书”微信公众号。)
以上是关于每日一书|《算法设计》:算法入门之选的主要内容,如果未能解决你的问题,请参考以下文章