基本信息
编辑推荐
国家精品课程配套教材,根据教育部高教司主持评审的《中国计算机科学与技术学科教程2002》组织编写,与美国ACM和IEEE/CS Computing Curricula 2005同步。
内容简介
计算机书籍
为了适应培养我国21世纪计算机各类人才的需要,结合我国高等学校教育工作的现状,立足培养学生能跟上国际计算机科学技术的发展水平,更新教学内容和教学方法,提高教学质量,本书以算法设计策略为知识单元,系统地介绍计算机算法的设计方法与分析技巧,以期为计算机科学与技术学科的学生提供广泛而坚实的计算机算法基础知识。
另有配套的《算法设计与分析习题解答(第2版)》,对本书的全部习题做了详尽的解答。
本书内容丰富,观点新颖,理论联系实际。不仅可用作高等学校计算机专业本科生和研究生学习计算机算法设计的教材,而且也适合广大工程技术人员和自学读者学习参考。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。
作译者
目录
1.1 算法与程序
1.2 表达算法的抽象机制
1.3 描述算法
1.4 算法复杂性分析
小结
习题
第2章 递归与分治策略
2.1 递归的概念
2.2 分治法的基本思想
2.3 二分搜索技术
2.4 大整数的乘法
2.5 Strassen矩阵乘法
2.6 棋盘覆盖
2.7 合并排序
2.8 快速排序
2.9 线性时间选择
2.10 最接近点对问题
2.11 循环赛日程表
小结
前言
全书共分11章。
首先在第1章中介绍算法的基本概念,接着对算法的计算复杂性和算法的描述作简要阐述,然后围绕设计算法常用的基本设计策略组织第2章至第10章的内容。
第2章介绍递归与分治策略,这是设计有效算法最常用的策略,是必须掌握的方法。
第3章是动态规划算法,以具体实例详述动态规划算法的设计思想、适用性以及算法的设计要点。
第4章介绍贪心算法,这也是一种重要的算法设计策略,它与动态规划算法的设计思想有一定的联系,但其效率更高。按贪心算法设计出的许多算法能导致最优解,其中有许多典型问题和典型算法可供学习和使用。
第5章和第6章分别介绍回溯法和分支限界法。这两章所介绍的算法适合于处理难解问题,其解题的思想各具特色,值得学习和掌握。
第7章介绍概率算法,对许多难解问题提供高效的解决途径,是有很高实用价值的算法设计策略。
第8章介绍NP完全性理论。首先介绍计算模型、确定性和非确定性图灵机,然后进一步深入介绍NP完全性理论。这一章是全书理论性最强的一章,难度较大,适合于高年级本科生或研究生学习。..
第9章介绍了解NP难问题的近似算法,这是当前计算机算法领域的热门研究课题,具有很高的实用价值。
第10章通过实例介绍算法设计中常用的算法优化策略。
最后,在第11章介绍算法设计中较新的研究领域——在线算法设计。
在本书各章的论述中,首先介绍一种算法设计策略的基本思想,然后从解决计算机科学与应用中出现的实际问题人手,由简到繁地描述几个经典的精巧算法,同时对每个算法所需要的时间和空间进行分析。这样使读者既能学到一些常用的精巧算法,又能通过对算法设计策略的反复应用,牢固掌握这些算法设计的基本策略,以期收到融会贯通之效。在为各种算法设计策略选择用于展示其设计思想与技巧的具体应用问题时,本书有意重复选择某些经典问题,使读者能深刻地体会到一个问题可以用多种设计策略求解。同时,通过对解同一问题的不同算法的比较,更容易体会到每一个具体算法的设计要点。随着本书内容的逐步展开,读者也将进一步感受到综合应用多种设计策略可以更有效地解决问题。
本书采用面向对象的Java语言作为表述手段,在保持Java优点的同时,尽量使算法的描述简明、清晰。
为了加深对知识的理解,各章配有难易适当的习题,以适应不同程度读者练习的需要。
在本书的编写过程中,得到教育部高等学校计算机科学与技术教学指导委员会的关心和支持。福州大学“211工程”计算机与信息工程重点学科实验室为本书的写作提供了优良的设备与工作环境。清华大学出版社负责本书编辑出版工作的全体同仁为本书的出版付出了大量辛勤劳动,他们认真细致、一丝不苟的工作精神保证了本书的出版质量。南京大学宋方敏教授和福州大学傅清祥教授在百忙中认真审阅了全书,提出了许多宝贵的改进意见。在此,谨向每一位曾经关心和支持本书编写工作的各方面人士表示衷心的谢意!
由于作者的知识和写作水平有限,书稿虽几经修改,仍难免存在缺点和错误。热忱欢迎同行专家和读者惠予批评指正,使本书在使用过程中不断改进,日臻完善。...
作 者
2007年11月
序言
为了培养高素质创新型人才,必须建立高水平的教学计划和课程体系。在20多年跟踪分析ACM和IEEE计算机课程体系的基础上,紧跟计算机科学与技术的发展潮流,及时制定并修正教学计划和课程体系是尤其重要的。计算机科学与技术的发展对高水平人才的要求,需要我们从总体上优化课程结构,精炼教学内容,拓宽专业基础,加强教学实践,特别注重综合素质的培养,形成“基础课程精深,专业课程宽新”的格局。
为了适应计算机科学与技术学科发展和计算机教学计划的需要,要采取多种措施鼓励长期从事计算机教学和科技前沿研究的专家教授积极参与计算机专业教材的编著和更新,在教材中及时反映学科前沿的研究成果与发展趋势,以高水平的科研促进教材建设。同时适当引进国外先进的原版教材。
为了提高教学质量,需要不断改革教学方法与手段,倡导因材施教,强调知识的总结、梳理、推演和挖掘,通过加快教案的不断更新,使学生掌握教材中未及时反映的学科发展新动向,进一步拓广视野。教学与科研相结合是培养学生实践能力的有效途径。高水平的科研可以为教学提供最先进的高新技术平台和创造性的工作环境,使学生得以接触最先进的计算机理论、技术和环境。高水平的科研还可以为高水平人才的素质教育提供良好的物质基础。学生在课题研究中不但能了解科学研究的艰辛和科研工作者的奉献精神,而且能熏陶和培养良好的科研作风,锻炼和培养攻关能力和协作精神。..
进入21世纪,我国高等教育进入了前所未有的大发展时期,时代的进步与发展对高等教育质量提出了更高、更新的要求。2001年8月,教育部颁发了《关于加强高等学校本科教学工作,提高教学质量的若干意见》。文件指出,本科教育是高等教育的主体和基础,抓好本科教学是提高整个高等教育质量的重点和关键。随着高等教育的普及和高等学校的扩招,在校大学本科计算机专业学生的人数将大量上升,对适合21世纪大学本科计算机科学与技术学科课程体系要求的,并且适合中国学生学习的计算机专业教材的需求量也将急剧增加。为此,中国计算机学会和清华大学出版社共同规划了面向全国高等院校计算机专业本科生的 "21世纪大学本科计算机专业系列教材”。本系列教材借鉴美国ACM 和IEEE最新制定的Computing Curricula 2005(简称CC2005)课程体系,反映当代计算机科学与技术学科水平和计算机科学技术的新发展、新技术,并且结合中国计算机教育改革成果和中国国情。
算法设计与分析(第2版)中国计算机学会教育专业委员会和全国高等学校计算机教育研究会,在清华大学出版社的大力支持下,跟踪分析CC2001,并结合中国计算机科学与技术学科的发展现状和计算机教育的改革成果,研究出了《中国计算机科学与技术学科教程2002》 (China Computing Curricula 2002,简称CCC2002) ,该项研究成果对中国高等学校计算机科学与技术学科教育的改革和发展具有重要的参考价值和积极的推动作用。
"21世纪大学本科计算机专业系列教材”正是借鉴美国ACM 和IEEE CC2005课程体系,依据CCC2002基本要求组织编写的计算机专业教材。相信通过这套教材的编写和出版,能够在内容和形式上显著地提高我国计算机专业教材的整体水平,继而提高我国大学本科计算机专业的教学质量,培养出符合时代发展要求的具有较强国际竞争力的高素质创新型计算机人才。...
中国工程院院士
国防科学技术大学教授
21世纪大学本科计算机专业系列教材编委会名誉主任