端午假期来了,我们为你总结了十本各具特色的算法书,学习课程的同时,阅读这些书籍,快速前进,离你的理想目标更近一步!
1.《算法导论》ThomasH.Corman
这是最著名的算法书之一,但要注意它的理论性非常强。目前它已经出到了第三版。我强烈建议每个程序员都在书架上放一本算法导论,但只用来做短暂的阅读和参考。因为这本书你是不可能一口气读完的。我第一本就推荐它的另一个理由是,它不限定任何编程语言,而且还有对应的教学课程。
2.《算法》RobertSedgewickKevinWayne
这本书一直是我偏爱的算法参考,但现在我看的比较少了。你能在这本书里学到很多算法的背景知识,而且现在这本书也有了很多对应不同语言的版本(比如Java和C++)。信不信由你,如果你已经掌握了一门编程语言,那么用这门语言学习算法的曲线就会不那么陡峭。
3.《算法设计手册》SteveS.Skiena
这也是一本很棒的算法书,介绍的算法类型非常丰富,也包含很多代码。我尤其喜欢书中介绍算法在实际中是如何应用的。这有助于你了解一类算法可以用来解决怎样的一类问题。书中的代码是用C写的,但并不是很深奥,所以看起来很轻松。我在毕业快十年以后看这本书,也很快就掌握了一些图论算法。这本书我已经买了有十年了,现在还是是不是会拿出来看一看。
4.《面试算法》AdnanAziz
这是一本必读的算法书,尤其对于要找工作的人来说。光看封面就知道这本书的内容很有趣:图灵的人脸是用许多张不同人物的缩略图拼成的。而书中就介绍了如何实现这样的拼接算法。我喜欢这本书,因为它解决问题的途径和目的比较独特。有时候怀着不同目的去学习同样的东西可能会更有助于理解。
5.《算法简述》
这是一本很棒的算法书,尤其对于Java程序员来讲。它着重从实现的角度来介绍各种算法,也不像很多其他经典教材那样包含很多数学。所有的算法都是用模式来描述的,也提供了学习它们的动机、解释用的图片、高层次的伪代码以及实际可运行的代码(C、C++、Java和Ruby)。书中也包含一些测试,用以证明不同算法之间理论上的性能差异。简而言之,这是程序员学习算法最好一本书之一。
6.《算法设计》KleinbergTardos
这应该是ThomasCoren的算法导论之后第二好的算法书。它不是一本导论,而是面向有经验的程序员。书中侧重为对基本算法比较熟悉的程序员介绍了一些算法设计的知识。你应该先看一本导论再来学习这本书。
7.《算法导论:一种新的途径》UdiManber
这是一本很适合自学的书,因为其中包含了几百个问题和例子。它是为提高读者的问题求解能力以及令读者掌握算法设计背后的原理所编写的。这有助于你提高解决问题和写代码的能力。
8.《算法设计与分析》AnanyLevitin
这也是每个程序员都应该在书架上放一本的算法书。在你学习完一本导论书以后,你可以通过这本书来学习一些进阶知识。
9.《数据结构和算法》Aho,UllmanHopcroft
又一本精彩的数据结构和算法入门教材。这本书排版美观大方,很多不喜欢数学的程序员们都会喜欢它。
10.《Python算法》
这本书是为Python程序员所编写的。作者MagunsLieHetland同时也是另一本很受欢迎的Python入门教材《BeginningPython》的作者。这本书侧重介绍图论算法。正如我所说,算法跟具体的编程语言是无关的。你也可以用Java或者C++来实现从这本书里学到算法。当然如果你已经会Python,这就是一本绝佳的教材。
这就是每个程序员都应该读的10本算法书。当然,算法是一个很复杂的话题,很多算法只学习一遍是很难彻底理解的。遇到这种情况时,我建议把同一本书读两遍。并且,光读是不够的,你还要用自己喜欢的语言去实现算法。试着去实现你自己的ArrayList和HashMap。学习算法的成果并不会马上就显露出来,但你能注意到自己在思考和解决问题的时候已经有了细微的变化,代码质量也会逐渐提高。毕竟我们常说,世界上有两种程序员,一种是懂算法的,另一种是不懂的。
加入课程学习,你将获得4大权益、2大福利、元奖学金:
4大权益
-力扣(LeetCode)高效刷题攻略
-数据结构与算法知识点讲解
-高频面试题解题技巧与思路
-大厂技术面试经验分享
2大限时福利
-课后双周练
-导师答疑集锦
元奖学金
-课程内容解锁之后,你将通过教室或者邮件接收到等值于优惠学费的元奖学金优惠码,可以购买纳米学位,进一步提升自己。
建议学习时长:4周
先修条件:会一门主流编程语言(Python、C++等),了解算法和数据结构
优惠价格:原价元,尝鲜价仅需元,本期限定99席,售完即止。
立即购买,抢占席位↓↓常见问题
1、支付学费后,我可以立即开始学习吗?回答:购买课程到正式开课有几天缓冲期,首期课程将于5月27日在教室内解锁25%,之后每周一进行更新,购买课程后,请留意短信和服务号推送的通知,按照上课指南提示进行操作,我们还额外给大家赠送了两门小课,希望大家能在开课前期做好预习准备。2、学习形式是怎么样的?回答:为优达学城的短期技能专项提升课程,学习平台为优达学城的官方硅谷教室,刷题平台为力扣(LeetCode),建议学习时间为4周,到期自动延期4周时间,请大家务必在两个月内完成全部学习。3、课程支持退款吗?回答:该课程为虚拟商品,购买后不支持退款。4、这门课程有毕业证书吗?回答:这门课程并不是纳米学位,而是一个独立的根据真实学员需求诞生的小课,不提供纳米学位证书。若你有证书认证的需求,可以进一步了解数据结构与算法纳米学位。5、《高频算法面试题精讲》是否提供答疑辅导?我会获得哪些服务?回答:这门课程主要包括教室内由ACM金牌得主设计并教授的课程内容,包括学习所需的视频、文本、课后练习和实战演练。课程中将不提供额外的答疑辅导。在课程中,我们将不定期限时为大家额外赠送“问题答疑集锦”福利,把学员中常见问题的解答,整理成问题集锦,在教室中展示,供大家参考。
优达学城全新技能专项提升课程「高频算法面试题精讲」正式开放报名!ACM金牌获奖者手把手辅导,带你掌握算法面试经典解题思路,尝鲜价元,本期仅限99席,售完即止。点击「阅读原文」,立即了解课程详情,抢占宝贵席位!
章凌豪扫一扫下载订阅号助手,用手机发文章赞赏