此图为算法导论(第3版)销量突破50W时作者切蛋糕的情景 |
在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。 《算法导论(原书第3版)》选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在it专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册。 第3版的主要变化:
全球超过50万人阅读的算法圣经 我从1994年开始每年都为本科生讲授《算法设计与分析》课程,粗略地统计一下发现至今已有5000余名各类学生听过该课。算法的重要性不言而喻,因为不管新概念、新方法、新理论如何引人注目,信息的表示与处理总是计算技术(含软件、硬件、应用、网络、安全、智能等)永恒的主题。信息处理的核心是算法,在大数据时代,设计高效的算法显得格外重要。 当初,为了教好这门基础必修课,提高教学质量,我觉得应该从教学内容的改革入手,具体来说,采用的教材应该与国际一流大学接轨。1997年访美期间,在Stanford大学了解到他们采用的教材是Thomas H. Cormen等编著的《Introduction to Algorithms》,于是从Stanford书店买了一本带回来,从第二年开始便改用该书作教材。至今,15年过去了,我们一直追随其变迁,从第二版到第三版。教学实践证明它确实是一本好教材,难怪世界范围内包括MIT、CMU、Stanford、UCB、Cornell、UIUC等国际国内名校在内的1000余所大学都一直用它作为教材或教学参考书,也难怪它印数巨大且在《高引用计算机科学文献》(《Most Cited Computer Science Citations》)一览表中名列前茅。 这是一本有1200多页的厚书,教学内容非常丰富,不但涵盖了典型算法、算法分析、算法设计方法和NP完全等内容,而且还包括数据结构,甚至高级数据结构的介绍。后者可作为国内《数据结构》课程的教材或教学参考资料。在学时有限的情况下,要在本科阶段教完前者的所有内容也是困难的,故要做取舍。好在该书的各个章节相对独立且难度由浅入深, 我们的做法是将相对容易的一般的入门性内容留在本科阶段,而将相对难的专门的较深入的内容并入研究生课程《算法及复杂性》或《计算复杂性》。除本校外,本人就曾多次应邀在兰州大学、湖南大学和浙江师范大学等院校为研究生讲授过这些内容。其实该书也适合希望增强自身程序设计能力和程序评判能力的广大应用计算技术的社会公众,特别是参加信息学奥林匹克竞赛和ACM程序设计竞赛的选手及其教练员。 教学过程中我们发现该书具有以下特点:(1)选材与时俱进,具有实用性且能引起读者的兴趣。该书中研究的许多问题都是当前现实应用中的关键技术问题。(2)采用伪码描述算法,既简洁易懂又便于抓住本质,再配上丰富的插图来描述和解释算法的执行过程使得教学内容更加通俗,便于自学。(3)对算法正确性和复杂性的分析比较全面,既有严密的论证,又有直观的解释。(4)既有结论性知识的介绍,也有逐步导出结论的研究过程的展示。(5)丰富的练习题和思考题使得及时检验所学知识掌握情况和进一步拓展学习内容成为可能。 同时,我们也注意到:学生们总是反映看英文版教材速度太慢,所以他们总是想方设法再找一本中译版来阅读。正是这样的背景,在第三版的《Introduction to Algorithms》出版后,我们应机械工业出版社编辑的邀请,启动了长久的翻译工程,先后参加翻译工作的老师有:国防科学技术大学的殷建平教授(翻译第1~3章)、中国科学技术大学的徐云教授(译第10~14章、第18~21章和第27章)、南开大学的王刚教授(翻译第4章和第15~17章)、南开大学的刘晓光教授(翻译第6~9章)、南开大学的苏明副研究员(翻译第5章和第28~30章)、上海交通大学的邹恒明教授(翻译第22~26章)、哈尔滨工业大学的王宏志副教授(翻译第31~35章和附录部分)。由于水平有限且工作量巨大,译文中一定存在许多不足,在此敬请各位同行专家学者和广大读者批评指正,欢迎大家将发现的错误或提出的意见与建议发送到邮箱:algorithms@hzbook.com。在整个工程即将完成之际,我们特别要感谢机械工业出版社的温莉芳老师和王春华老师,没有你们的信任、耐心和支持整个翻译工作不可能完成。 |