-
第一章算法引论
本章主要讲授算法与程序的定义和性质、如何描述算法以及如何分析算法的复杂度。
-
●1.1算法概述
介绍算法的经典应用实例和课程的核心教学内容,学习算法与程序的定义和性质以及三种常用的描述算法的形式。
-
●1.2算法复杂度分析
学习算法复杂性相关概念、时间复杂度分析、渐进性分析和算法复杂度表示。
-
第二章递归与分治算法
本章主要讲授递归的概述和特点、经典的递归实例(阶乘、Fibonacci数列和汉诺塔问题),分治法的基本思想和复杂度分析,分治算法经典实例之二分查找和快速排序。
-
●2.1分治算法之递归概述
学习递归的定义、要素、递归树和特点,以及两个经典的递归实例:求阶乘和Fibonacci数列。
-
●2.2递归算法之汉诺塔问题
学习汉诺塔问题的描述及其求解算法的设计、分析和实现。
-
●2.3分治法的基本思想
学习分治法的总体思想、适用条件和基本步骤。
-
●2.4分治法的复杂度分析
学习分治法时间复杂度递推公式的表示和公式求解(主定理)。
-
●2.5分治算法之二分查找
学习二分查找的定义、算法设计、算法分析和算法实现。
-
●2.6分治算法之快速排序
学习快速排序的概述、算法设计、算法实现和算法分析。
-
第三章动态规划
本章主要讲授动态规划算法的总体思想、基本步骤和基本要素等内容,学习如何使用动态规划算法求解最长公共子序列、最大子段和、最长递增子序列、0-1背包问题等经典问题,学习相应的动态规划求解算法的设计、分析与实现。
-
●3.1动态规划概述
学习动态规划算法的总体思想、基本步骤、基本要素和整体结构等内容。
-
●3.2动态规划之最长公共子序列(上)
学习最长公共子序列问题的描述以及使用动态规划求解该问题的算法设计。
-
●3.3动态规划之最长公共子序列(下)
学习使用动态规划求解最长公共子序列问题的算法实现、分析和改进。
-
●3.4动态规划之最大子段和
学习最大子段和问题的描述以及如何使用动态规划算法求解该问题,包括算法的设计、分析与实现。
-
●3.5动态规划之最长递增子序列
学习最长递增子序列问题的描述以及如何使用动态规划算法求解该问题,包括算法的设计、分析与实现。
-
●3.6动态规划之0-1背包问题(上)
学习0-1背包问题的描述以及使用动态规划求解该问题的算法设计。
-
●3.7动态规划之0-1背包问题(下)
学习使用动态规划求解0-1背包问题的算法实现、分析和扩展。
-
第四章贪心算法
本章主要讲授贪心算法的定义和基本要素,学习如何使用贪心算法求解活动安排问题、部分背包问题、最优装载问题、最小生成树问题(Prim算法)和单源最短路径问题(Dijkstra算法)等经典问题,学习求解算法的设计、分析与实现。
-
●4.1贪心算法概述
学习贪心算法的定义和基本要素,理解贪心算法与动态规划算法的差异。
-
●4.2贪心算法之活动安排问题
学习活动安排问题的描述以及如何使用贪心算法求解该问题,包括算法的设计、实现与分析。
-
●4.3贪心算法之部分背包问题
学习部分背包问题的描述以及如何使用贪心算法求解该问题,包括算法的设计、实现与分析。
-
●4.4贪心算法之最优装载问题
学习最优装载问题的描述以及如何使用贪心算法求解该问题,包括算法的设计、实现与分析。
-
●4.5贪心算法之Prim算法
学习最小生成树的定义以及如何使用Prim算法构造图的最小生成树,包括算法的设计、实现与分析。
-
●4.6贪心算法之Dijkstra算法(上)
学习单源最短路径问题的描述以及使用Dijkstra算法计算源点到其他点的最短路径的基本思想和算法流程。
-
●4.7贪心算法之Dijkstra算法(下)
学习使用Dijkstra算法计算源点到其他点的最短路径的实例演示、算法实现和分析。
-
第五章回溯法
本章主要讲授回溯法的基本思想,学习如何使用回溯法求解马的遍历问题、N皇后问题、图的m着色问题和0-1背包问题等经典问题,学习求解算法的设计、分析与实现。
-
●5.1回溯法基本思想
学习回溯法的定义、应用步骤、剪枝函数、解空间树、关键要素、搜索框架和主要用途。
-
●5.2回溯法之马的遍历问题
学习马的遍历问题的描述以及如何使用回溯法求解该问题,包括算法的设计与实现。
-
●5.3回溯法之N皇后问题
学习N皇后问题的描述以及如何使用回溯法求解该问题,包括算法的设计与实现。
-
●5.4回溯法之图的m着色问题
学习图的m着色问题的描述以及如何使用回溯法求解该问题,包括算法的设计实现和分析。
-
●5.5回溯法之0-1背包问题(上)
学习使用回溯法求解0-1背包问题的算法设计和实现。
-
●5.6回溯法之0-1背包问题(下)
学习使用回溯法求解0-1背包问题的算法改进和分析。
-
第六章分支限界法
本章主要讲授分支限界法的基本思想、实现方式、算法框架和算法特点,学习如何使用分支限界法求解装载问题,学习求解算法的设计与实现。
-
●6.1分支限界法概述
学习分支限界法的基本思想、实现方式、算法框架和算法特点。
-
●6.2分支限界法之装载问题(上)
学习装载问题的描述以及使用队列式分支限界法求解该问题的算法设计。
-
●6.3分支限界法之装载问题(下)
学习使用队列式分支限界法求解装载问题的算法实现和改进。