算法设计与分析
预备知识:
● 掌握离散数学与数据结构的基础知识;
● 熟悉任何一门高级程序设计语言,如C/C++,Java,Python等;
● 具备高等数据、线性代数与概率统计的基本工科数学知识。
学时:52学时
教师交流QQ群:379017145(仅限教师)
中国大学MOOC:https://www.icourse163.org/course/BUAA-1449777166
教师寄语
本课程既讲授动态规划与分而治之等经典算法策略,又以产教融合方式邀请阿里与滴滴的副总裁、ACM国际大学生程序设计竞赛世界冠军等算法专家分享经验。无论您是零基础的初学者,还是在刷题中困惑的求职者,本课程都将通过详细剖析实例降低理解难度,通过归纳总结问题揭示算法本质,助您真正学懂算法!
课程概述
从辗转相除法到割圆术,从算盘到电子计算机,算法在人类文明发展中始终扮演着重要角色。如今,有计算的地方,就有算法的身影。从网上购物到出行规划,从工作学习到休闲娱乐,算法无所不在,已融入到人们生活的方方面面。
本课程是面向计算机和信息技术相关专业本科生的核心专业课,同时适合对算法的基础知识有学习需求的相关从业人员。课程汇聚了北航计算机学院顶级的算法授课团队,不但讲授分而治之、动态规划和贪心策略等经典算法技术,而且以产教融合的方式邀请阿里巴巴与滴滴出行等互联网公司副总裁、ACM国际大学生程序设计竞赛世界冠军等产业界算法专家进行经验分享。
本课程具有对基础知识要求少、对核心方法讲解细、对算法本质剖析深、对产业需求分析准的特点。无论你是你是零基础的算法初学者,还是在算法刷题中困惑的求职者,相信本课程都将通过详细易懂的实例剖析降低理解难度,通过相关问题的归纳总结揭示算法本质,助你真正学懂算法!
授课目标
- 帮助学生掌握算法的定义、性质和表示方法,能够熟练使用伪代码对算法进行描述;
- 帮助学生掌握算法分析的理论工具,能够熟练采用渐近上界分析算法运行时间;
- 帮助学生掌握算法设计的常用方法,包括分而治之、动态规划、贪心策略;
- 帮助学生建立对简单计算问题的建模、分析、算法设计、算法优化和编程求解能力。
实验列表
实验专题 | 知识点 | 实验名称 | 学时 | 难度 |
算法设计与分析编程评测 |
贪心算法 |
1. 猴子选王 | 2 | 4 |
2. 逻辑推理 | 2 | 4 | ||
3. 截止日期 | 4 | 5 | ||
分而治之 |
4. Fibonacci数列 | 2 | 4 | |
5. 摆放钢轨 | 2 | 4 | ||
6. 树的序列 | 4 | 5 | ||
7. 哥德巴赫运算 | 2 | 3 | ||
8. 魔法操作 | 4 | 5 | ||
9. 逆序对计数 | 2 | 4 | ||
动态规划 |
10. 语法分析 | 2 | 4 | |
11. 最长公共子序列 | 2 | 4 | ||
12. 递增子序列 | 4 | 5 | ||
13. 足球比赛 | 4 | 5 | ||
14. 折叠问题 | 4 | 5 | ||
15. 霍夫曼的贪婪 | 4 | 5 | ||
16. 垃圾邮件 | 2 | 4 | ||
17. 来电记录 | 2 | 4 | ||
18. 期末测试 | 4 | 5 |