算法设计与分析是计算机专业的核心课程。学习该课程对学习其他专业课奠定了扎实的基础,也对培养计算思维和求解问题的能力起到重要作用。面对各个应用领域的大量实际问题,最重要的是分析问题的性质并选择正确的求解思路,即找到一个好的算法。特别是在当今复杂、海量信息的大数据处理中,一个好的算法往往起到决定性的作用。
本课程注重针对实际问题需求,进行数学建模并选择高效求解算法的训练,为提高学生的素质和创新能力打下必要的基础。课程主要内容涉及:面对实际问题建立数学模型、设计正确的求解算法、算法的效率估计、改进算法的途径、问题计算复杂度的估计、难解问题的确定和应对策略等等。本课程是算法课程的基础部分,主要涉及算法的设计、分析与改进途径,其他有关计算复杂性的内容将在后续课程"算法设计与分析(高级)"中加以介绍。
课程的内容分成两大部分:算法的基础知识和通用算法设计技术与分析方法。
算法基础知识部分主要介绍算法相关的基本概念和数学基础。比如,什么是算法的伪码描述?什么是算法最坏情况下和平均情况下的时间复杂度?算法时间复杂度函数的主要性质,算法复杂度估计中常用的数学方法,如序列求和及递推方程求解。
通用算法设计技术与分析方法部分主要介绍分治策略、动态规划、贪心法、回溯与分支限界等算法设计技术。重点介绍这些设计技术的使用条件、分析方法、改进途径,并给出一些重要的应用。
本课程从算法复杂性分析的基本方法和原理入手,以讲授算法设计的基本方法和原理、算法优化的基本方法和技巧为主,通过典型的问题及其相应的求解算法,以及算法复杂性的分析,达到完善学生的知识体系、培养学生的分析能力、拓展学生的思维方法,并鼓励学生把理论与实践相结合。
程序设计基础、数据结构与算法、高等数学、高等代数
60分以上颁发合格证书
85分以上颁发优秀证书
《算法设计与分析(第2版)》 屈婉玲、刘田、张立昂、王捍贫编著 清华大学出版社