Chapter 1 -2
1、算法的基本概念、性质
* 能够回答算法的五个重要特性
* 能够回答算法时间复杂度的含义
2、了解插入排序算法的思想、性质,熟悉插入排序的排序过程
* 插入排序的算法时间复杂度,对给定的具体算例正确排序
O(n*2)
3、伪代码
* 给出算法伪代码能够分析出算法的时间复杂度,能够用渐近记号表
示
Chapter 3
1、了解时间复杂度渐近上界、渐近下界、渐近紧确界的含义
2、* 能够准确给出渐进函数记号:O、Ω、Θ的定义,并能够用它们
表示算法复杂度分析结果
3、了解限界函数的基本性质:* 传递性、自反性、对称性、转置对
称性
4、* 熟练了解计算和估算时间复杂度的一些定理,尤其是对数级、
多项式级、指数级函数之间的量级关系,以在实际分析中加以应用
Chapter 4
1、* 掌握分治策略的基本思想,以及它遵循的三个步骤
2、* 递归式的化简:要清楚为什么化简递归式,熟练掌握代换法、
递归树法、 *主方法(主方法的三种情况使用条件)
3、了解利用分治策略求解相关问题和算法
Chapter 5
1、了解对相关概念:概率分析、均匀随机排列、随机算法、平均情
况运行时间、期望运行时间
2、了解指示器变量的定义和作用
Chapter 6-9
1、了解堆的性质,* 最大堆和最小堆;熟悉最大堆的一些操作的过
程:* 维护最大堆,* 建堆,以及堆排序算法,对给定的具体算例会
正确操作
3、了解快速排序的基本思想;* 熟悉快速排序的排序过程; * 理解
快速排序的最坏时间复杂度和平均时间复杂度;* 对给定的具体算例
会正确排序
4、理解计数排序的基本思想,* 能够熟练写出计数排序的伪代码;*
对给定的具体算例,能够进行正确排序
5、理解桶排序的基本思想,* 理解桶排序的线性时间复杂度,* 能
够熟练写出桶排序的伪代码;* 对给定的具体算例,能够进行正确排
序
6、了解中位数、顺序统计量的概念
Chapter 10-14
1、* 熟悉栈和队列的特点,了解栈和队列的操作过程
2、* 熟悉链表的特点,* 理解双向链表和单向链表的操作的不同
3、理解散列表的特点,* 理解和掌握散列函数的定义和作用,熟悉
散列冲突的概念以及解决散列冲突的两种方法:链接法和 * 开放寻
址法;利用开放寻址法解决散列冲突中,对于具体给定的实例,能够
熟练的运用三种探查法来计算探查序列:线性探查,二次探查,以及
* 双重探查
7、* 理解与掌握二叉搜索树的性质,了解二叉搜索树的一些查询操
作和时间复杂度:搜索,返回最大,最小等,* 掌握二叉搜索树的插
入操作,了解二叉搜索树的删除操作;* 对于给出具体的二叉搜索树
实例,能够进行正确操作
8、* 了解平衡树二叉搜索树的概念;* 理解和掌握红黑树的性质,*
了解红黑树的查询和修改操作,以及时间复杂度,包括搜索,插入等;
* 掌握红黑树的旋转操作,* 包括左旋和右旋;* 对于给出具体的二
叉搜索树实例,能够进行正确操作
Chapter 15
1、* 掌握动态规划方法的基本思想, 掌握应用动态规划求解相关问
题应满足条件,掌握动态规划求解问题遵循的四个步骤
2、* 掌握动态规划方法和分治策略的相同点和它们之间的不同点,
能够准确回答这类问题
3、* 对给出问题实例能够推导递归求解公式
4、了解最优子结构性、子问题图等概念
5、理解何为 Programming ,能够回答对动态规划带来的改进的理解
6、了解利用动态规划策略求解相关问题和算法,对给出的算例能够
正确计算
钢条切割
* 最长公共子序列,对于给出的算例能够进行正确的求解,
基于递归公式通过填表给出详细地计算过程