《算法基础》复习提纲
- 格式:doc
- 大小:53.00 KB
- 文档页数:5
《算法基础》复习提纲
1 引言(ch1)
1.什么是算法及其特征
2.问题实例和问题规模
2 算法初步(ch2)
1.插入排序算法
2.算法复杂性及其度量
(1)时间复杂性和空间复杂性;
(2)最坏、最好和平均情形复杂性;
3.插入排序的最坏和平均时间
4.归并排序算法及其时间复杂性
3函数增长率(ch3)
1.渐近记号O、Ω、θ的定义及其使用
2.标准复杂性函数及其大小关系
3.和式界的证明方法
4 递归关系式(ch4)
1.替换法
(1)猜测解数学归纳法证明;
(2)变量变换法;
2.迭代法
(1)展开法;
(2)递归树法;
3.主定理
5 概率分析(ch5)
1..序列随机排列的两种方法及其复杂性 6 堆排序(ch6)
1堆的概念和存储结构
2.堆的性质和种类
3.堆的操作:建堆;整堆;
4.堆排序算法和时间复杂性
5.优先队列及其维护操作
7 快速排序(ch7)
1.快速排序算法及其最好、最坏时间和平均时间
2.随机快速排序算法及其期望时间
8 线性时间排序(ch8)
1.基于比较的排序算法下界:Ω(nlogn)
2.计数排序适应的排序对象、算法和时间
3.基数排序适应的排序对象、算法和时间
4.桶排序适应的排序对象、算法和时间
9 中位数和顺序统计(ch9)
1.最大和最小值的求解方法
2.期望时间为线性的选择算法
3.最坏时间为线性的选择算法及其时间分析
10 红黑树(ch13)
1.红黑树的定义和节点结构
2.黑高概念
3.一棵n个内点的红黑树的高度至多是2log(n+1)
4.左旋、右旋算法
5.插入算法、时间、至多使用2次旋转
6.删除算法、时间、至多使用3次旋转
11 数据结构的扩张(ch14)
1.动态顺序统计:
扩展红黑树,支持①选择问题(给定Rank求相应的元素),②Rank问题(求元素x在集合中的Rank) (1)节点结构的扩展;
(2)选择问题的算法;
(3) Rank问题的算法;
(4)维护树的成本分析;
2.如何扩张一个数据结构:扩张的步骤;扩张红黑树的定理
3.区间树的扩张和查找算法
12 递归与分治法
1. 递归设计技术
2. 递归程序的非递归化
3. 算法设计
(1) 最近点对; (2) 生成全排列;
(3) 大整数乘法; (4) Stranssen矩阵乘法;
13 动态规划(ch15)
1.方法的基本思想和基本步骤
2.动态规划和分治法求解问题的区别
3.最优性原理及其问题满足最优性原理的证明方法
4.算法设计
(1) 多段图规划; (2) 矩阵链乘法;
(3) 最大子段和; (4) 最长公共子序列;
(5) 0-1问题求解;
14 贪心算法(ch16)
1.方法的基本思想和基本步骤
2.贪心算法的正确性保证:满足贪心选择性质
3.贪心算法与动态规划的比较
4.两种背包问题的最优性分析:最优子结构性质和贪心选择性质
5.算法设计
(1)小数背包; (2) 活动安排;
(3)找钱问题; (4) 最优装载问题;
(5)单源最短路径;
15 回溯法
1.方法的基本思想和基本步骤
2.回溯法是一种深度遍历的搜索
3.术语: 三种搜索空间, 活结点, 死结点, 扩展结点, 开始结点, 终端结点
4.两种解空间树和相应的算法框架 5.算法设计:
(1) n后问题; (2) 0-1背包;
(3) 排列生成问题; (4) TSP问题;
(5) 符号三角形问题; (6) 图的m着色问题;
16 分支限界法
1方法的基本思想和基本步骤
2.与回溯法的区别
3.活结点的两种扩展方式
4.0-1背包问题的搜索: FIFO队列和优先队列
5.算法设计
(1)0-1背包问题; (2)装载问题
(3)单源最短路径问题;
1.
算法基础 考试题型
一、填空题 (选择题)
1. 给定一个由11个活动组成的活动集合,各个活动的起始时间和结束时间如下表所示,则该活动集合中最大兼容活动子集的元素个数为 ;
i 1 2 3 4 5
6 7 8 9 10
11
si 1 3
0 5 3 5 6 8 8 2
12
fi 4 5 6 7 8 9 10 11 12 13
14
2. 任意一个比较排序算法在最坏情况下都需要做 次比较。由于堆排序和合并排序的运行时间上界是 ,所以它们都是渐近最优的比较排序算法;
3. 分治法是一种常用的算法设计策略,包括 、 、 三个步骤。基于分治法设计得到的两个n位大整数的乘法运算的算法运算时间为 ;
4. 基数排序算法是一种按位排序算法,它按 进行排序,并且要求按位排序算法是稳定的。给定n个d位数,每一个数位可以取k种可能的值,则基数排序算法能以 的时间正确地对这些数进行排序;
5. 有4个算法的时间复杂度分别为O(n2)、O(nlgn)、O(nn)、O(n),则它们之间的大小关系为 ;
6. 可以利用动态规划法求解的问题必须满足两个性质:
和 。
二、简答题(25分)
1. 对于0-1背包问题和小数背包问题,什么问题可以用贪心法求解?其贪心策略是什么?
2. 计数排序算法的输入需要满足什么条件?桶排序算法的输入需要满足什么条件呢?它们的时间复杂度是多少?
3. 如下图所示,给定一棵二叉查找树,请:画出对结点x进行左旋操作得到的新二叉查找树
三、计算证明题
1. 求出下面各题运行时间T(n)的渐近阶:
nnTnT)2/(4)(
四、综合题
1. 设X[1..n]和Y[1..n]为两个数组,每个都包含n个已排好序的数。给出一个求数组X和Y中所有2n个元素的中位数的、O(lgn)时间的算法。
2. 给定一个数组A = <5, 1, 3, 2, 16, 10, 12, 15, 9, 8>,
(1) 请画出该数组的二叉树表示形式;
(2) 利用建堆算法BUILD-MAX-HEAP把数组A造成一个最大堆,其时间复杂度多大?请画出最大堆的二叉树表示形式;
(3) 结点10在大根堆中的高度是多少?
x
y 11
9 18
14
12 17 19
22
20