算法期末复习题finalWord格式文档下载.docx
- 文档编号:22604296
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:12
- 大小:79KB
算法期末复习题finalWord格式文档下载.docx
《算法期末复习题finalWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《算法期末复习题finalWord格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
D)。
A、分支界限算法B、概率算法
C、贪心算法
D、
回溯算法
12.实现最长公共子序列利用的算法是(
B
)。
A、分治策略B、动态规划法
C、贪心法
D、回溯
13.下列算法具有最优子结构的算法是
(D)
A.概率算法B.回溯法C.分支限界法D.动态规划法
14.算法分析是(C)
A.将算法用某种程序设计语言恰当地表示出来
B.在抽象数据集合上执行程序,以确定是否会产生错误的结果
C.对算法需要多少计算时间和存储空间作定量分析
D.证明算法对所有可能的合法输入都能算出正确的答案
15衡量一个算法好坏的标准是(C)
16A.运行速度快B.占用空间少C.时间复杂度低D.代码短
16.二分搜索算法是利用(A)实现的算法。
A.分治法B.动态规划法C.贪心法D.回溯法
17.用贪心法设计算法的关键是(B)。
A.将问题分解为多个子问题来分别处理
B.选好最优量度标准
C.获取各阶段间的递推关系式
D.满足最优性原理
1&
找最小生成树的算法Kruskal的时间复杂度为(D)(其中n为无向图的结点数,m为边数)
A.0(n2)B.0(mlogn)C.0(nlogm)D.0(mlogm)
19.回溯法搜索状态空间树是按照(C)的顺序。
A•中序遍历B.广度优先遍历
C.深度优先遍历D.层次优先遍历
20•采用广度优先策略搜索的算法是(A)o
A.分支界限法B.动态规划法
C.贪心法D.回溯法
21.函数32n+10nlogn的渐进表达式是(B)•
Oglog"
)
22•二分搜索算法的时间复杂性为(C)o(心(“)(l°
g"
)D.
23.快速排序算法的时间复杂性为(D)□
(心(“)(10g,?
)I
24.算法是由若干条指令组成的有穷序列,而且满足以下性质(D)A.输入:
有0个或多个输入B.输出:
至少有一个输出
C.确定性:
指令清晰,无歧义D.有限性:
指令执行次数有限,而且执行时间有限
A.⑴⑵(3)B.⑴⑵(4)C.⑴⑶(4)D.⑴⑵⑶⑷
25.背包问题的贪心算法所需的计算时间为(B)A.0(n2n)B.0(nlogn)(2n)(n)
26•下列算法中不能解决0/1背包问题的是(A)
A贪心法B动态规划C回溯法D分支限界法
27.在寻找n个元素中第k小元素问题中,若使用快速排序算法思想,运用分治算法对n个元素进行划分,应如何选择划分基准下面(D)答案解释最合理。
A.随机选择一个元素作为划分基准
B.取子序列的第一个元素作为划分基准
C.用中位数的中位数方法寻找划分基准
D.以上皆可行。
但不同方法,算法复杂度上界可能不同
28.分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决子问题,最后将子问题的解组合起来形成原问题的解。
这要求原问题和子问题(C)。
A.问题规模相同,问题性质相同B.问题规模相同,问题性质不同
C.问题规模不同,问题性质相同D.问题规模不同,问题性质不同
29.下面是贪心算法的基本要素的是(C)。
A、重叠子问题B、构造最优解C、贪心选择性质D、定义最
30.函数加+5的渐进表达式是(D)。
A.0(3心B.0(3)C.0(1°
〃)(爪)
二、填空题
1、解决0/1背包问题可以使用动态规划、回溯法和分支限界法,其中不需要排序的是一动态规划,需要排序的是_回溯法,分支限界法O
2、使用回溯法进行状态空间树裁剪分支时一般有两个标准:
约束条件和目标函数的界,N皇后问题和0/1背包问题正好是两种不同的类型,其中同时使用约束条件和目标函数的界进行裁剪的是0/1背包问题,只使用约束条件进行裁剪的是N皇后问题。
3.贪心算法基本要素有最优度量标准和最优子结构。
输出:
count的值。
1.count=0
2.wh订en>
=l
3.forj=lton
4.count=count+1
5.endfor
6.n=n/2
7.endwhile
endCOUNT
15•算法是由若干条指令组成的有穷序列,且要满足输入、输出、确定性和有限性四条性质。
16•快速排序.插入排序和选择排序算法中,快速排序算法是分治算法。
17.下面算法的基本语句是_S二S+i*j:
_,算法的时间复杂度是
—0(心
intfun(intn)
{
intS=0;
for(inti=l;
i<
=n;
i卄)
for(intj=l;
j<
n-i;
j++)
S=S+i*j;
returnS;
18.最小生成树的Mim算法应用的是贪心算法思想。
19.分治算法的基本步骤包括分解子问题,递归求解子问题,合并解
20.归并排序和快速排序在平均情况下的时间复杂度都是0(nlogn),但是最坏情况下两种算法有区别,其中归并排序为_0(nlogn)—,快速排序为o(^2)
二、算法设计
1.下面是用回溯法求解图的m着色问题的算法(求出所有解)。
图的m着色问题:
给定一个无向连通图G和m种颜色,给图G的所有顶点着色,使得任何两相邻顶点的颜色不同。
已有函数color(k)用于在前k-1个顶点已着色的情况下,判断第k个顶点是否可着颜色x[k];
是则返回true,否则返回false。
输入:
正整数m,n和含n个顶点的无向连通图G的邻接矩阵graph。
图G的m着色问题的所有解,若无解,则输出nosolutionoflag=false
k=l;
x[l]=0
whilek>
while
(1)
x[k]=x[k]+l
ifcolor(k)then
ifthen
flag=true;
outputx[l..n]
else
k=(3)
⑷
endif
endwhile
⑸
ifnotflagthenoutput"
nosolution"
endm-COLORING
⑵k=n
(5)k=k-l
2.下面是求解矩阵链乘问题的动态规划算法。
矩阵链乘问题:
给出n个矩阵Mx,M2,…,此,肚为阶矩阵,i=l,
2,n,求计算所需的最少数量乘法次数。
记Mi.产MiMi+严虬,i<
=jo设C[i,j],l<
=i<
=j<
=n,表示计算的所
需的最少数量乘法次数,则
JO,i=j
CH,j]min{C[i,k-l]+C[k”+叭如},i<
j
Iigj
算法MATCHAIN
矩阵链长度n,n个矩阵的阶r[l..n+l],其中r[l..n]为n个矩阵的行数,r[n+l]为第n个矩阵的列数。
n个矩阵链乘所需的数量乘法的最少次数。
fori=ltonC[i,i]=Q)
ford=ltonT
fori=lton~d
j=
(2)
C[i,j]=8
fork=i+ltoj
x=⑶
ifx<
C[i,j]then
=x
end辻
endfor
return(5)
endMATCHAIN
(1)0
(2)i+d(3)C[i,k-l]+C[k,刃+r[i]*r[k]*r[j+l]
⑷C[i,j](5)C[l,n]
3.下面是用回溯法解n皇后问题的算法(求出所有解)。
n皇后问题:
在nxn棋盘上放置n个皇后使得任何两个皇后不能互相攻击。
(如果两个皇后处在同一行,或同一列,或同一斜线上,则她们能互相攻击。
算法NQUEENS
正整数n。
n皇后问题的所有解x[l..n],若无解,则输出Nosolution。
flag=false
k=l;
whilex[k]<
n
x[k]二
(2)
ifplace(k)then
ifk=nthen
flag=true;
(41
Nosolution”endNQUEENS
过程place(k)
递归的快速排序算法:
template<
classType>
voidQuicksort(Typea[],intlow,inthigh){if(
(1))
{inti=Partition(a,low,high);
Quicksort(a,low,i-1);
(2);
}
解:
(1)low<
high
(2)QuickSort(a,i+1,high)
5.n后问题的递归的回溯算法-设己经存在全局变量n代表皇后个数。
voidQueen:
:
Backtrack(intt)
{if(
(1))sum++;
用动态规划法求如下0/1背包问题的最优解:
有
5个物品,其重量分别为(3,2,1,4,5),价值分别为(25,20,15,40,50),背包容量为6.写出求解过程(设计表格和填写表格)
设计一个二维表V(i,j)表示将前i个物品装进容量为j的背包所能获得的最大价值,根据以下递推式填表:
若>
j,v(i,j)二V(i-1,j)
若Wt<
=j,V(i,j)=max{V(i-1,j),V(i-1,j
-wi)+vi)
j=0
j=1
J=2
j=3
J=4
j=5
j=6
i
=0
=1
25
=2
20
45
=3
15
35
40
60
=4
55
=5
65
V(5,6)即为问题的最优解,最大价值为65。
经过回溯得到物品组合为第
3和第5个物品装入背包。
4.归并排序算法对下列实例排序,写出算法执行过程。
A=(48,12,61,3,5,19,32,7)
拆分:
5、简述分治法的基本思想。
答^分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同;
对这k个子问题分别求解。
如果子问题的规模仍然不够小,则再划分为k个子问题,如此递归的进行下去,直到问题规模足够小,很容易求出其解为止;
将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解。
6、由于贪心算法是一种只顾眼前的步骤,而难以顾及全局步骤的算法,所以它通常表现出哪些特点)
1不能保证最后求箱的解是最佳的;
即多半是近似解。
(少数问题除外)
2策略容易发现(关键:
提取清楚问题中的维度),而且运用简单,被广泛运用。
3策略多样,结果也多样。
4算法实现过程中,通常用到辅助算法:
排序
7.简述动态规划算法的基本步骤
找出最优解的性质,并刻划其结构特征。
递归地定义最优值。
以自底向上的方式计算出最优值。
根据计算最优值时得到
的信息,构造最优解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 期末 复习题 final