| 教学周次 | 日期 | 教学内容 | 作业 |
|---|---|---|---|
| 1 | 2026-3-2 |
什么是算法? 讲义:教学大纲实施细则, KL教学平台使用手册, 算法与算法分析 |
A+B Problem (1), A*B Problem (1), A+B Problem (2), A*B Problem (2) |
| 2026-3-4 | 怎样证明算法是正确的?数学归纳法、几个使用数学归纳法的例子 | 最长无重复字符的子串, 书面作业1 | |
| 2 | 2026-3-9 |
算法的计算复杂性、函数的渐近增长与排序算法 讲义:复杂度的渐近表示 |
|
| 3 | 2026-3-16 | 函数的渐近增长与排序算法、主定理、主定理的直观理解 | 书面作业2 |
| 2026-3-18 |
一些用于热身的问题 讲义:一些用于热身的问题 |
2-Sum (2), 除法计算器, 全组合生成, 大数比较问题, 合法三连珠棋局面 | |
| 4 | 2026-3-23 |
分治策略(1):二分查找、牛顿迭代、快速幂 讲义:分治策略 |
|
| 5 | 2026-3-30 | 分治策略(2):快速排序、选择无序数组中的第k小问题 | 立方根问题, 切蛋糕问题, 小兔登台阶, 计数问题, A / B Problem (2) |
| 2026-4-1 |
分治策略(3):高斯大数乘法、快速傅里叶变换 |
||
| 6 | 2026-4-6 |
分治策略(4):Strassen矩阵乘法、平面最近点对问题 |
书面作业3 |
| 7 | 2026-4-13 |
动态规划(1):切钢条问题、0-1背包问题 讲义:动态规划 |
小偷问题 (1), 小偷问题 (2), 合唱队形, 最大子矩阵和, 勤工助学 (1), 书架问题 |
| 2026-4-15 | 动态规划(2):最长上升子序列问题、最大子数组和问题 | ||
| 8 | 2026-4-20 | 动态规划(3):最长公共子序列问题、最短编辑距离问题 | |
| 9 | 2026-4-27 | 动态规划(4):配对问题、矩阵连乘问题 | 书面作业4, 编辑距离问题 (2), 通配符匹配问题 (1) , 通配符匹配问题 (2) , 愚公移山 (1), 愚公移山 (2), 糖果 |
| 2026-4-29 |
贪婪策略(1):活动选择问题、排队接水问题 讲义:贪婪策略 |
||
| 10 | 2026-5-4 | 贪婪策略(2):霍夫曼编码、拟阵 | 书面作业5, 类别限制的选取问题, 勤工助学 (2), 最多偶数拆分问题, 股票买卖问题 |
| 11 | 2026-5-11 |
图算法(1):深度优先搜索、拓扑排序 讲义:图算法 |
|
| 2026-5-13 | 图算法(2):广度优先搜索、最短路问题 | ||
| 12 | 2026-5-18 | 图算法(3):Dijkstra算法、Floyd-Warshall算法 | |
| 13 | 2026-5-25 | 图算法(4):最小生成树问题 | 书面作业6 |
| 2026-5-27 |
回溯与分支限界 讲义:回溯与分支限界 |
长方形填充问题, 有多少个水洼?, 内陆的水洼干涸了, 组合总和, 麻将胡牌了吗? | |
| 14 | 2026-6-1 |
计算复杂性理论 讲义:计算复杂性基础 |
|
| 15 | 2026-6-8 |
平摊分析 讲义:平摊分析 |
|
| 2026-6-10 |
字符串匹配 讲义:字符串匹配 |
||
| 16 | 2026-6-15 |
线性规划:松弛形和单纯形、利用软件求解线性规划问题 讲义:线性规划 |