算法设计与分析是计算机专业的核心课程。学习该课程对学习其他专业课奠定了扎实的基础,也对培养计算思维和求解问题的能力起到重要作用。面对各个应用领域的大量实际问题,最重要的是分析问题的性质并选择正确的求解思路,即找到一个好的算法。
本课程注重针对实际问题需求,进行数学建模并选择高效求解算法的训练,为提高学生的素质和创新能力打下必要的基础。课程的内容分成两大部分:算法的基础知识和通用算法设计技术与分析方法。
算法基础知识部分主要介绍算法相关的基本概念,比如,什么是算法?什么是算法的伪码描述?什么是算法最坏情况下和平均情况下的时间复杂度?算法时间复杂度函数的主要性质,算法复杂度估计中常用的数学方法等。
通用算法设计技术与分析方法部分主要介绍:蛮力法、分治策略、动态规划、贪心法、回溯法和分支限界法等。重点介绍这些设计技术的使用条件、分析方法,并给出一些重要的应用。
高等数学、离散数学、C语言程序设计、数据结构
时间 | 周次 | 周学时 | 教学内容 | 教学形式与手段 |
2020 | 1 | 3 | 第1-2章 算法设计基础 | 线上授课 |
2 | 3 | 第3章蛮力法---查找问题,排序问题组合问题 | 线上授课 | |
3 | 3 | 第3章蛮力法---图问题,几何问题 | 多媒体讲授 | |
4 | 3 | 第4章 分治法---概述,排序问题 | 多媒体讲授 | |
5 | 3 | 第4章 分治法---组合问题 | 多媒体讲授 | |
6 | 3 | 第4-5章 分治法---几何问题 减治法----概述 | 多媒体讲授 | |
7 | 3 | 第5章 减治法----查找问题,排序问题 | 多媒体讲授 | |
8 | 3 | 第5-6章 减治法----组合问题 动态规划—概述 | 多媒体讲授 | |
9 | 3 | 第6章 动态规划—图问题 | 多媒体讲授 | |
10 | 3 | 第6章 动态规划—组合问题 | 多媒体讲授 | |
11 | 3 | 第6-7章 动态规划—查找问题 贪心法—概述, | 多媒体讲授 | |
12 | 3 | 第7章贪心法—图问题 | 多媒体讲授 | |
13 | 3 | 第7章 贪心法—组合问题 | 多媒体讲授 | |
14 | 3 | 第8章 回溯法—概述,图问题, | 多媒体讲授 | |
15 | 3 | 第8章回溯法—图问题,组合问题 | 多媒体讲授 | |
16 | 3 | 第9章 分支限界法—概述,图问题 | 多媒体讲授 | |
17 | 3 | 第9章分支限界法—图问题,组合问题 | 多媒体讲授 | |
18 | 3 | 第9章分支限界法—组合问题 | 多媒体讲授 | |
19 | 3 | 期末考试 |
《算法设计与分析》, 王晓东, 清华大学出版社;
《计算机算法基础》,余祥萱 等著,华中科技大学出版社;
《算法基础》,G. Brassard 著,邱仲潘 等译,清华大学出版社;
《计算机算法设计、分析与实现》,王晓云,科学出版社;
《算法导论》(美)科曼(Cormen,T.H.) 等著,潘金贵 等译,机械工业出版社.