算法(第4版)
上QQ阅读APP看书,第一时间看更新

译者序

在计算机领域,算法是一个永恒的主题。即使仅把算法入门方面的书都摆出来,国内外的加起来怕是能铺满整个天安门广场。在这些书中,有几本尤其与众不同,本书就是其中之一。

本书是学生的良师。在翻译的过程中我曾无数次感叹:“要是当年我能拥有这本书那该多好!”应该说本书是为在校学生量身打造的。没有数学基础?没关系,只要你在高中学过了数学归纳法,那么书中95%以上的数学内容你都可以看得懂,更何况书中还辅以大量图例。没学过编程?没关系,第1章会给大家介绍足够多的Java知识,即使你不是计算机专业的学生,也不会遇到困难。整本书的内容编排循序渐进,由易到难,前后呼应,足见作者的良苦用心。没有比本书更专业的算法教科书了。

本书是老师的好帮手。如果老师们还只能照本宣科,只能停留在算法本身一二三四的阶段,那就已经大大落后于这个时代了。算法并不仅仅是计算的方法,探究算法的过程反映出的是我们对这个世界的认知方法:是唯唯诺诺地将课本当做圣经,还是通过“实验——失败——再实验”循环的锤炼?数学是保证,数据是验证。本书通过各种算法,从各个角度,多次说明了这个道理,这也正是第1章是全书内容最多的一章的原因。希望每一位读者都不要错过第1章。无论你有没有编程基础,都会从中得到有益的启示。

本书是程序员的益友。在工作了多年之后,快速排序、霍夫曼编码、KMP等曾经熟悉的概念在你脑中是不是已经凋零成了一个个没有内涵的名词?是时候重新拾起它们了。无论是为手头的工作寻找线索,还是为下一份工作努力准备,这些算法基础知识都是你不能跳过的。本书强调软件工程中的最佳实践,特别适合已有工作经验的程序员朋友。所有的算法都是先有API,再有实现,之后是证明,最后是数据。这种先接口后实现、强调测试的做法,无疑是在工作中摸爬滚打多年的程序员最熟悉的。

本书也有一些遗憾,比如没有介绍动态规划这样重要的思想。但是瑕不掩瑜,它仍然是最好的入门级算法书。我强烈地希望能够把本书翻译成中文,但同时也诚惶诚恐,如履薄冰,担心自己的水平不足以准确传达原文的意思。翻译的过程虽然辛苦,但我觉得非常值得。感谢人民邮电出版社图灵公司给了我这个机会,感谢编辑和审稿专家的细心检查。同时感谢我的妻子朱天的全力支持。译者水平有限,bug在所难免,还请读者批评指正。

谢路云

2012.9.17