算法设计与分析是计算机科学的核心内容之一,算法设计与分析的能力也成为计算机科学从业者最重要的基本功之一,因而“算法设计与分析”是计算机专业学生的重要专业课程。尽管算法设计与分析很重要,但这门课程对许多读者来说稍显“高冷”,主要表现为其内容抽象、覆盖范围广、需要的数学基础多,因而学习算法设计与分析仿若攀登一座费时费力的高山。
针对这种情况,计算机领域的大牛Thomas H.Cormen出手了。他撰写了此书作为面向算法设计与分析初学者的入门书籍。本书有着如下几个鲜明的特点。
第一,本书仅仅使用了有限的数学知识。对于很多算法初学者来说,阻碍其学习的很重要的一个绊脚石就是算法设计与分析中涉及的大量数学知识,覆盖了概率论、代数、数学分析、图论等多个方面,而本书不需要读者具备这些方面的深入知识,为算法初学者提供了一条入门的捷径。
第二,本书语言通俗生动,并且把算法和现实中的问题紧密连接,避免出现大量算法分析细节。一方面,让算法真正成为生活中的一种思维方式,让读者深入了解算法思想的实际用途;另一方面,对于很多应用背后的算法知识,让读者在“知其然”的同时“知其所以然”。
第三,本书覆盖范围广,在200多页的篇幅中覆盖了图论算法、字符串算法、密码算法、数据压缩算法,甚至NP-完全问题和不可判定问题,使读者可在最短的时间内掌握多种应用中不同的算法。
特别值得一提的是,本书的作者Thomas H.Cormen也是算法设计与分析方面的经典教材《算法导论》的作者之一,译者有幸参与了该书的翻译工作。《算法导论》是一本内容深入的算法设计与分析方面的大部头教材,而本书则可以看作《算法导论》的一个薄薄的入门版本,通过阅读本书,读者可以用最短的时间轻松地窥见算法设计与分析的门径,奠定学习“算法设计与分析”课程的基础。
在本书英文版出版以后,译者应机械工业出版社的邀请开始了本书的翻译工作。由于水平有限且时间紧张,译文中一定存在许多不足,在此敬请各位同行、专家、学者和广大读者批评指正,欢迎大家将发现的错误或提出的意见与建议发送到邮箱wangzh@hit.edu.cn,以改进本书的译本。
最后,我要感谢哈尔滨工业大学的孔欣欣同学在翻译过程中进行的辅助翻译工作。在完成译稿之后,我的爱人黎玲利博士阅读全文并提出了很多有益的意见,在此也表示感谢。同时感谢机械工业出版社的姚蕾编辑和朱劼编辑,由于她们的信任和支持,本书的翻译工作才得以顺利进行。
王宏志