降龙十八掌: 《算法导论》
2017-07-26 本文已影响355人
算法时空
这套掌法自然是《算法导论》了, 掌力连绵不绝, 最关键的是无法学完后几掌(难度极大!). 虽然我读金庸大侠的书不多, 年少时又钟爱温瑞安巨侠的书, 但我还是以这套掌法来描述《算法导论》.
《算法导论》这本书由什么好处呢? 容我一一道来:
- 师出名门. 这本书四位作者CLRS都是名校的教授, 教学经验丰富, 历经多年修订(1990年出版了第1版, 之前还有多年的讲义试用期), 作为教材那是没得说的. 特别是其中的Rivest是RSA密码算法的发明者, 很好地融入了教学和科研中的种种心得. 另外, MIT的传奇人物Erik Demaine教授也参与了本书第3版的修订工作(说不定以后这本书可能改成CDLRS), 有兴趣的不妨去八卦一下他.
- 数学严谨. 相比于其他算法书籍来说(除了TAOCP), 这本书的数学推导是最完整严密的. 其实, 了解算法分析的好处在于能设计出更好的算法, 例如之前我们的“主定理”笔记, 有些算法设计思路是从算法分析着手的, 而这本书为进一步提升算法设计能力提供了很好的跳板. 当然, 对于强迫症患者来说, 看到那些乱七八糟的算法分析和记号来说, 实在是无法忍受!
- 覆盖面广. 虽然说是导论, 但对于初学者来说是一本大部头百科全书, 基本上你能想到的主题这里都涉及到了. 学完之后定能克敌制胜, 从基本算法设计技术到图算法, 还有后面的精选主题, 这都是必备的必杀技.
- 基础扎实. 其实这本书还是导论, 不厌其烦地从基本知识讲起, 特别是某些数据结构的基本知识. 而很多算法书籍会将这部分内容剔除, 直接从算法技术开讲. 此外, MIT多年的经典神课6.006也是广受欢迎, 适合于各种专业学习. 其实, 在这个算法为王的时代, 难道不是每个人都要学点算法吗?
- 朴实无华. 这点自然说的是郭靖用降龙十八掌的感觉, 反正就这几招, 真正用熟了, 到哪里都可以无往不利. 《算法导论》的章节非常明晰, 一路走来, 循序渐进, 看起来都是老生常谈的内容, 但是一招一式有板有眼. 而且, 不要今天看到又有什么新的学习方法, 什么新谈新读, 还是把《算法导论》一气讲明背熟吧!
- 广为传播. 既然名声在外, 这本书的优点我也不多谈. 仅举一个例子, 德国著名算法专家Kurt Mehlhorn主页上有一副图(https://people.mpi-inf.mpg.de/~mehlhorn/Figuren/pages/P2080019.htm), 里面的《算法导论》(应该是第2版)的书脊封套都破了. 这充分说明, 读书破一卷, 下笔也有神.
缺点是什么呢? 比较难, 而且要求数学功底比较扎实. 当然, 你也可以略去其中的数学证明细节, 能够把其中的算法实现也是不枉白学十四掌(丐帮历任帮主的水平).