前言


自2008年起为本科生开设“算法分析与设计”课程,自2010年起为专业学位硕士开设“算法分析与设计”课程,于2019年拓展为学术型学位硕士开设“算法分析与设计”课程,前后已15年。近年来,随着人工智能和大数据技术的飞速发展,特别是以深度学习为代表的机器学习领域的跨越性发展,算法技术被提到了空前的高度,并得到了产业界前所未有的重视。但在深度学习应用中偏重于数据标注和提高训练效率,对模型本身、模型改进的研究较少。在本科生教学阶段,主要讲述算法的基础知识和常用算法,在研究生教学阶段增加了启发式算法和人工智能算法,目的是使学生掌握常用的算法技术,为后续的学习和研究打好基础。
本书共分为8章,第1章讲述了算法的概念、特征、算法复杂性及相关数学基础;第2章讲述了算法相关的数据组织方式和组织结构;第3~8章分别讲述了分治法、动态规划法、贪心算法、回溯法、分支限界法、概率分析和随机算法。
本书的特色主要有: 
(1)书中包含大量的案例,通过案例分析掌握相关算法。
(2)每个案例按照问题提出、问题分析、问题求解、算法实现、算法复杂性分析的思路讲解。
(3)分治法、动态规划法采用传统的类C语言伪代码进行描述;贪心算法、回溯法、分支限界法、概率分析和随机算法采用C#语言实现。
(4)书中对流水作业调度问题进行了深入的探讨,并给出了一组下界值估计函数。
编者在2008年首次讲授“算法分析与设计”课程,基于吴敏华教授的《算法分析与设计》白皮书(2005年1月),之后在此基础上不断扩展,在此对吴敏华教授表示感谢!在资料的收集方面,得到了首都师范大学信息工程学院2021级选修“算法分析与设计”课程的75名研究生的协助,在此一并表示感谢!

著者
2023年9月