算法设计与分析(试题A卷)
四川师范大学成教×××专业×××层次半脱产形式期末考试期末试卷第1页( 共6页)
《算法设计与分析》课程试卷(A)
答卷说明:1、考试方式 闭卷
2、满分100分
题号 一 二 三 四 五 六 七 总分 总分人
分数
一、单项选择题(每小题3分,共30分)
1、动态规划算法的基本要素为( )。
A、最优子结构性质与贪心选择性质
B、重叠子问题性质与贪心选择性质
C、最优子结构性质与重叠子问题性质
D.、预排序与递归调用
2、算法分析中,记号O表示( ),记号表示( ),记号表示( )。
A、渐进下界 B、渐进上界 C、非紧上界 D、紧渐进界 E、非紧下界
3、以下关于渐进记号的性质是正确的有:( )
A、f(n)(g(n)),g(n)(h(n))f(n)(h(n))
B、f(n)O(g(n)),g(n)O(h(n))h(n)O(f(n))
C、O(f(n))+O(g(n)) = O(min{f(n),g(n)})
D、f(n)O(g(n))g(n)O(f(n))
4、下列算法中通常以自底向上的方式求解最优解的是( )。
得分 评卷人
四川师范大学成教××专业××层次××形式期末考试 ××试卷 第2页( 共6页)
A、备忘录法 B、动态规划法 C、贪心法 D、回溯法
5、衡量一个算法好坏的标准是( )。
A、运行速度快 B、占用空间少 C、时间复杂度低 D、代码段
6、实现棋盘覆盖算法利用的算法是( )。
A、分治法 B、动态规划法 C、贪心法 D、回溯法
7、下面关于NP问题说法正确的是( )。
A、NP问题都是不可能解决的问题
B、P类问题包含在NP类问题中
C、NP完全问题是P类问题的子集
D、NP类问题包含在P类问题中
8、矩阵连乘问题的算法可由( )设计实现。
A、分支界限算法 B、动态规划算法 C、贪心算法
9、( )是贪心算法与动态规划算法的共同点。
A、重叠子问题 B、构造最优解 C、贪心选择性质 D、最优子结构性质
10、Hanoi塔问题如下图所示。现要求将塔座A上的的所有圆盘移到塔座B上,
并仍按同样顺序叠置。移动圆盘时遵守Hanoi塔问题的移动规则。由此设计出
解Hanoi塔问题的递归算法正确的为:( )
A. void hanoi(int n, int A, int C, int B)
{
if (n > 0)
{
hanoi(n-1,A,C, B);
move(n,a,b);
hanoi(n-1, C, B, A);
}
B. void hanoi(int n, int A, int B, int C)
{
if (n > 0)
{
hanoi(n-1, A, C, B);
move(n,a,b);
hanoi(n-1, C, B, A);
}
四川师范大学成教×××专业×××层次半脱产形式期末考试期末试卷第3页( 共6页)
二、填空题(每空2分,共18分)
1、下面程序段的所需要的计算时间为 。
Int MaxSum(int n, int *a, int &besti, int &bestj)
{
int sum=0;
for(int i=1;i<=n;i++){
int thissum=0;
for(int j=i;j<=n;j++){
This sum+=a[j];
if(thissum>sum) {
得分 评卷人
C. void hanoi(int n, int C, int B, int A)
{
if (n > 0)
{
hanoi(n-1, A, C, B);
move(n,a,b);
hanoi(n-1, C, B, A);
}
D. void hanoi(int n, int C, int A, int B)
{
if (n > 0)
{
hanoi(n-1, A, C, B);
move(n,a,b);
hanoi(n-1, C, B, A);
}
四川师范大学成教××专业××层次××形式期末考试 ××试卷 第4页( 共6页)
sum=this sum;
besti=i;
bestj=j;
}
}
}
return sum;
}
2、算法的复杂性有 复杂性和 复杂性之分。
3、程序是 用某种程序设计语言的具体实现。
4、算法是指解决问题的 或 。
5、从分治法的一般设计模式可以看出,用它设计出的程序一般是 。
6、计算一个算法时间复杂度通常可以计算 、 或计算步。
三、证明题(每小题10分,共20分)
1、举反例证明0/1背包问题若使用的算法是按照pi/wi的非递减次序考虑选择的
物品,即只要正在被考虑的物品装得进就装入背包,则此方法不一定能得到最
优解(此题说明0/1背包问题与背包问题的不同)。
2、求证:O(f(n))+O(g(n)) = O(max{f(n),g(n)})
得分 评卷人
四川师范大学成教×××专业×××层次半脱产形式期末考试期末试卷第5页( 共6页)
四、算法设计题(1小题10分、2小题12分、3小题10分,共32
分)
1、老板有一袋金块(共n块,n是2的幂(n>=2)),最优秀的雇员得到其中
最重的一块,最差的雇员得到其中最轻的一块。假设有一台比较重量的仪器,
希望用最少的比较次数找出最重的金块。(要求:用二分法解决问题。)
得分 评卷人
四川师范大学成教××专业××层次××形式期末考试 ××试卷 第6页( 共6页)
2、部分背包问题:一个商人带着一个能装M千克的背包去乡下收购货物,准备
将这些货物卖到城里获利。现在已知有多种货源,知道每一种货物的重量和获
利情况。请编写算法帮助商人收购货物,以获取最高的利润。
3、百钱百鸡问题。中国古代数学家张丘建在他的《算经》中提出了著名的“百
钱百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百
鸡,翁、母、雏各几何?
算法设计与分析试卷及答案
算法设计与分析1、(1) 证明:O(f)+O(g)=O(f+g)(7分)(2) 求下列函数的渐近表达式:(6分)① 3n 2+10n;② 21+1/n;2、对于下列各组函数f(n)和g(n),确定f(n)=O(g(n))或f(n)=Ω(g(n))或f(n)=θ(g(n)),并简述理由。
(15分)(1);5log )(;log )(2+==n n g n n f (2);)(;log )(2n n g n n f == (3);log )(;)(2n n g n n f == 3、试用分治法对数组A[n]实现快速排序。
(13分)4、试用动态规划算法实现最长公共子序列问题。
(15分)5、试用贪心算法求解汽车加油问题:已知一辆汽车加满油后可行驶n 公里,而旅途中有若干个加油站。
试设计一个有效算法,指出应在哪些加油站停靠加油,使加油次数最少。
(12分)6、试用动态规划算法实现下列问题:设A 和B 是两个字符串。
我们要用最少的字符操作,将字符串A 转换为字符串B ,这里所说的字符操作包括:(1)删除一个字符。
(2)插入一个字符。
(3)将一个字符改为另一个字符。
将字符串A 变换为字符串B 所用的最少字符操作数称为字符串A 到B 的编辑距离,记为d(A,B)。
试设计一个有效算法,对任给的两个字符串A 和B ,计算出它们的编辑距离d(A,B)。
(16分)⎣⎦2/)(;3)(i i g i i f ==。
对于给定的两个整数n 和m ,要求用最少的变换f 和g 变换次数将n 变为m 。
(16分)1、⑴证明:令F(n)=O(f),则存在自然数n 1、c 1,使得对任意的自然数n ≥n 1,有:F(n)≤c 1f(n)……………………………..(2分)同理可令G(n)=O(g),则存在自然数n 2、c 2,使得对任意的自然数n ≥n 2,有:G(n)≤c 2g(n)……………………………..(3分)令c 3=max{c 1,c 2},n 3=max{n 1,n 2},则对所有的n ≥n 3,有: F(n)≤c 1f(n)≤c 3f(n)G(n)≤c 2g(n)≤c 3g(n)……………………………..(5分) 故有:O(f)+O(g)=F(n)+G(n)≤c 3f(n)+c 3g(n)=c 3(f(n)+g(n)) 因此有:O(f)+O(g)=O(f+g)……………………………..(7分) ⑵ 解:① 因为;01033)103(lim 222=+-+∞→n n n n n n 由渐近表达式的定义易知: 3n 2是3n 2+10n 的渐近表达式。
《算法设计与分析》考试题目及答案(DOC)
6. 能采用贪心算法求最优解的问题,一般具有的重要性质为:(A) A. 最优子结构性质与贪心选择性质 B.重叠子问题性质与贪心选择性质
3. 所谓贪心选择性质是指(所求问题的整体最优解可以通过一系列局部最 优的选择,即贪心选择来达到)。
4. 所谓最优子结构性质是指(问题的最优解包含了其子问题的最优解)。 5. 回溯法是指(具有限界函数的深度优先生成法)。 6. 用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。在任 何时刻,算法只保存从根结点到当前扩展结点的路径。如果解空间树 中 从根结点到叶结点的最长路径的长度为 h(n),则回溯法所需的计算空间通 常为(O(h(n)))。 7. 回溯法的算法框架按照问题的解空间一般分为(子集树)算法框架与
12. 用回溯法解图} 的 m 着色问题时,使用下面的函数 OK 检查当前扩展结点的
每一个儿子所相应的颜色的可用性,则需耗时(渐进时间上限)(O(mn))。
Bool Color::OK(int k) {//
for(int j=1;j<=n;j++) if((a[k][j]= =1)&&(x[j]= =x[k])) return false;
f(n)个单位时间。用 T(n)表示该分治法解规模为|P|=n 的问题所需的计算时
间,则有:T (n)
kT (n
O(1) / m)
f
(n)
n 1 n 1
算法分析与设计试题及答案
算法分析与设计试题及答案一、选择题1. 下列哪个是属于分治算法的例子?A. 冒泡排序B. 归并排序C. 顺序查找D. 选择排序答案:B2. 在排序算法中,时间复杂度最优的是:A. 冒泡排序B. 插入排序C. 归并排序D. 快速排序答案:C3. 哪个不是动态规划的特点?A. 具有重叠子问题B. 通过递归求解C. 需要保存子问题的解D. 具有最优子结构答案:B4. 在图的广度优先搜索算法中,使用的数据结构是:A. 栈B. 队列C. 数组D. 堆栈答案:B5. 在最小生成树算法中,下列哪个不属于贪心策略?A. Kruskal算法B. Prim算法C. Dijkstra算法D. Prim-Kruskal混合算法答案:C二、简答题1. 请简述分治算法的思想和应用场景。
答案:分治算法的思想是将原问题分解成若干个规模较小且类似的子问题,然后解决子问题,最后将子问题的解合并得到原问题的解。
其应用场景包括排序算法(如归并排序、快速排序)、搜索算法(如二分查找)等。
2. 什么是动态规划算法?请给出一个动态规划算法的示例。
答案:动态规划算法是一种通过将问题分解成子问题并解决子问题来解决复杂问题的方法。
它的特点是具有重叠子问题和最优子结构性质。
以斐波那契数列为例,可以使用动态规划算法求解每一项的值,而不需要重复计算。
3. 图的深度优先搜索和广度优先搜索有什么区别?答案:图的深度优先搜索(Depth First Search,DFS)是一种先访问子节点再访问兄弟节点的遍历算法,通常使用递归或者栈实现。
而广度优先搜索(Breadth First Search,BFS)则是以层次遍历的方式展开搜索,使用队列来实现。
DFS更适合用于搜索路径,BFS则适用于寻找最短路径等。
4. 请简述贪心算法的特点及其应用场景。
答案:贪心算法的特点是每一步都采取当前状态下最优的选择,以期望得到全局最优解。
然而,贪心算法并不一定能求解所有问题的最优解,但对于一些特定问题,贪心算法往往能得到近似最优解。
《算法分析》课程试卷A及答案
《算法分析》课程考试试卷A适用专业:考试日期:闭卷所需时间:120分钟总分:100分一、给出计算机算法的概念?(10分)二、分析下列程序段的时间复杂度。
(10分)for(i=0; i<n; i++)for(j=0; j<i; j++)c[i][j]=0;三、给出二分查找的递归算法思想。
(10分)四、最少硬币问题:设有n中不同面值的硬币,各硬币的面值存于数组T[1:n]z中,现要用这些面值的硬币来找钱,可以使用的各种面值的硬币个数存于数组C[1:n]中。
对于任意钱数0≤m≤20001,设计一个用最少硬币找钱的方法。
(15分)五、写出0-1背包问题的数学模型和动态规划算法求解的递推式。
(10分)六、给出0-1背包问题的回溯算法求解时的约束条件。
(15分)七、字符a~h出现的频率恰好是前8个Fibonacci数,计算这些字符哈夫曼编码。
(15分)(前8个Fibonacci数为:1,1,2,3,5,8,13,21)。
八、设计一个图的m着色问题的搜索算法,要求给出搜索剪枝函数。
(15分)《算法分析》课程试卷A 答案1. (10分)算法是指解决问题的一种方法或一个过程,由若干条指令组成的有穷序列,且满足下述4条性质:(1)输入,有0个或多个由外部提供的量作为算法的输入; (2)输出,至少产生一个量作为输出;(3)确定性,组成算法的每条指令时清晰的,无歧义,相同的输入条件,应该有相同的输出;(4)有限性,能在有限的时间内执行完。
2. (10分)T(1+2+3+……+(n-1))=O(n 2) 3. (10分)m=(l+r)/2 若l<r 则:(1)x=a[m] 则查找成功,结束;(2)x>a[m] 则r=m-1,在a[l]到a[r]中查找x; (3)x<a[m] 则l=m+1,在a[l]到a[r]中查找x; 否则查找失败4.(15分)最少硬币问题模型:求∑=ni i C Min 1,约束条件为m= ∑=ni i i T C 1,Ci,Ti>=0整数。
(已公布!)算法设计与分析 期末试卷 A卷(完整含答案)2010.12
(A)n!
(B)10log2n (C)2n (D)3n5
装
10、有 9 个村庄,其坐标位置如下表所示:
i
1
2
3
4
5
6
7
8
9
x(i) 1
2
3
4
5
6
7
8
9
y(i) 1
2
3
4
5
6
7
8
9
订 现在要盖一所邮局为这 9 个村庄服务,请问邮局应该盖在( )才能使到邮局到这 9 个
村庄的总距离和最短。
(A)(4.5,0)
华南农业大学期末考试试卷(A 卷)
2010 学年第一学期
考试类型:(闭卷)考试
学号
姓名
考试科目: 算法分析与设计 考试时间: 120 分钟
年级专业
装
题号
一
二
三
四
总分
得分
评阅人
注意:所有答案请写在答卷上,写在试卷上不得分。
订
一、选择题(本大题共 10 小题,每小题 2 分,共 20 分) 得分
1、以下有关NP完全性理论的相关描述,正确的是( )。
订
ChessBoard(tr,tc + s,dr,dc,s);
else
{
Board[tr + s -1][tc + s] = t; 线
ChessBoard(tr , tc + s, tr + s - 1, tc + s ,s);
}
if(dr >= tr + s && dc < tc + s)
ChessBoard(tr + s,tc,dr,dc,s);
2006-2007学年第二学期《算法设计与分析》A卷
2006-2007学年第⼆学期《算法设计与分析》A卷⼆、对于下列各组函数,确定f(n) = O(g(n)),或者f(n) =Ω(g(n)),或f(n)=(g(n))。
(15分)1. f(n)=logn2, g(n)=logn+52. f(n)=logn2, g(n) = n3. f(n) = n, g(n)=log2n4. f(n)=nlogn+n, g(n)=logn三、给定如下矩阵连乘问题,⽤动态规划算法计算最优计算次序及最优值(15分)。
A1 A2 A3 A4 A5 A620×10 10×35 35×15 15×40 40×25 25×30四、对于数组a[0 : n-1],给定n段合并排序算法如下,建⽴其计算复杂性递归表达式并求解(15分)。
Public static void mergesort(int [] a, int left, int right){if(left < right){int j = (int)Math.sqrt(right – left + 1);if(j > 1){for(int i = 0; i < j; i++)mergesort(a, left + i*j, left + (i + 1) *j – 1);mergesort(a, left+j*j, right);}mergeall(a, left, right);}}其中,算法mergeall合并n个排好序的数组段。
五、给定图如下,求出最⼩⽣成树以及以顶点1为源的单源最短路径。
(15分)六、证明求最⼤公约数的欧⼏⾥得算法的正确性,并分析其算法复杂性。
(15分)int gcd(int a, int b){if(b = = 0)return a;return gcd(b, a % b);}其中%为求模运算。
七、给定分别有n个元素的两个集合S和T,试设计⼀个判定S和T是否相等的蒙特卡罗算法,并分别就相等和不相等(有⼀个元素不同)两种情形分析算法正确的概率。
最新算法分析与设计期末考试试卷a卷
算法分析与设计期末考试试卷a卷------------------------------------------作者xxxx------------------------------------------日期xxxx西南交通大学2015-2016学年第(一)学期考试试卷课程代码 课程名称 算法分析与设计 考试时间 120 分钟阅卷教师签字: 一、 填空题(每空1分,共15分) 1. 回溯法的求解目标是找出解空间树中满足约束条件的所有解,而 (1) 法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解. 2. 分治算法的基本步骤包括:分解、解决和 (2) 。
3. 选择排序、插入排序和归并排序算法中, (3) 算法是分治算法。
4. 计算一个算法时间复杂度通常可以计算的 (4) 、基本操作的频度或计算步。
5. 贪心算法的基本要素是 (5) 性质和 (6) 性质 。
6. 以广度优先或以最小耗费方式搜索问题解的算法称为 (7) 。
7. 快速排序算法的性能取决于 (8) 。
班 级 学 号 姓 名 密封装订线 密封装订线 密封装订线8.常见的减治策略分为三类:(9), (10) ,减可变规模。
9.堆的构建过程对于堆排序而言是一种(11)策略,属于变治思想中的实例化简类型。
10.分支限界法主要有(12)分支限界法和(13)分支限界法。
11.快速排序算法是基于 (14)的一种排序算法.12.动态规划算法的基本思想是将待求解问题分解成若干子问题,先求解(15),然后从这些子问题的解得到原问题的解.二、选择题(每题2分,共20分)1、二分搜索算法是利用( )实现的算法。
A、分治策略B、动态规划法 C、贪心法 D、回溯法2。
衡量一个算法好坏的标准是( )。
A、运行速度快B、占用空间少C、时间复杂度低 D、代码短3. 以下关于渐进记号的性质是正确的有:( )A。
f(n)=Θ(g(n)),g(n)=Θ(h(n))⟹f(n)=Θ(h(n))B。
《算法分析与设计试卷2016-2017》
《算法分析与设计》试卷(A)(时间90分钟满分100分)B )。
A、分支界限法B、动态规划法C、贪心法D、回溯法2.在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是( B ).A.回溯法B.分支限界法C.回溯法和分支限界法D.回溯法求解子集树问题3.实现最大子段和利用的算法是( B )。
A、分治策略B、动态规划法C、贪心法D、回溯法4..广度优先是( A )的一搜索方式。
A、分支界限法B、动态规划法C、贪心法D、回溯法5.衡量一个算法好坏的标准是( C )。
A 运行速度快B 占用空间少C 时间复杂度低D 代码短6.Strassen矩阵乘法是利用( A)实现的算法。
A、分治策略B、动态规划法C、贪心法D、回溯法7. 使用分治法求解不需要满足的条件是( A )。
A 子问题必须是一样的B 子问题不能够重复C 子问题的解可以合并D 原问题和子问题使用相同的方法解8.用动态规划算法解决最大字段和问题,其时间复杂性为( B ).A.lognB.nC.n2D.nlogn9.解决活动安排问题,最好用( B )算法A.分治B.贪心C.动态规划D.穷举10.下面哪种函数是回溯法中为避免无效搜索采取的策略( B )A.递归函数 B.剪枝函数C。
随机数函数 D.搜索函数11. 从活结点表中选择下一个扩展结点的不同方式将导致不同的分支限界法,以下除( C )之外都是最常见的方式.A.队列式分支限界法B.优先队列式分支限界法C.栈式分支限界法D.FIFO分支限界法12. .回溯算法和分支限界法的问题的解空间树不会是( D ).A.有序树B.子集树C.排列树D.无序树13.优先队列式分支限界法选取扩展结点的原则是( C )。
A、先进先出B、后进先出C、结点的优先级D、随机14.下面是贪心算法的基本要素的是( C )。
A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解15.回溯法在解空间树T上的搜索方式是( A ).A.深度优先B.广度优先C.最小耗费优先D.活结点优先二、填空题(20分,每空1分)。
华南农业大学算法设计与分析 期末试卷 A卷(完整含答案)2011.6
2010 学年第二学期 考试类型: (闭卷)考试 考试科目: 考试时间: 算法分析与设计 120 分钟
学号 题号 得分 评阅人
姓名 一 二
年级专业 三 四 总分
装 订 线
注意:所有答案请写在答卷上,写在试卷上不得分。 一、选择题(本大题共10小题,每小题2分,共20分)
装 订
二、应用题(本大题共5小题,每小题6分,共30分)
1、对于以下程序段,分析其最坏时间复杂度。 int F(int n) { if (n == 0) return 1; else return F(n-1)*n; } 解:T(n) = T(n-1) + 1 n=0 T(n) = T(n-1) + 1 n>0 得 T(n)=O(n) 2、将下列复杂性函数按照渐进阶从低到高排序。
1、渐进算法分析是指( ) 。B (A)算法在最佳情况、最差情况和平均情况下的代价 (B)当规模逐步往极限方向增大时,对算法资源开销“增长率”上的简化分析 (C)数据结构所占用的空间 (D)在最小输入规模下算法的资源代价 2、下列算法中通常以自底向上的方式求解最优解的是( (A)备忘录法 (B)动态规划法 (C)贪心法 (D)回溯法 ) 。B
1i j
a },
k k i
1 i j n ,则对于n个整数序列的最大子
段和问题, max b[ j ] 即为所求。
1 j n
动态规划递归式: b[ j ]
max{0, a[1]} max{b[ j 1] a[ j ], a[ j ]}
j 1 1 j n
四、算法设计题(本大题共2小题,每小题15分,共30分)
1、 【最长上升子序列问题】 (15 分)
12软金-算法分析与设计-试卷A(双面)答案
e
x6 0
Q1
f
a. 40 40 30 50 35 150 115 190.625 (1,1,1,1, 7 , 0, 0)
40
8
b. 40 40 30 50 30 150 115 177.5 (1,1,1,1, 0, 7 , 0)
60
12
c. 40 40 30 50 10 170
号分别记为 1~7。则可生产如下的状态空间搜索树。其中各个节点处的限界函数值通过如 下方式求得:
x1 1
x2 1 x3 1
a
x1 0
a
x2 0
j
a
i
x4 1
a
x4 0
x3 0
a
x5 0
d
x4 1
e
x4 0
b
x6 0
x5 1
e
x5 0
h g
c
x7 0
7、!q && j < n 8、j++ 9、s==n-1 10、try(0) 四、算分分析与设计(共 3 题,共 40 分) 1、Prim 算法(7.5 分,每步 1.5 分) TP={A} --> {A, F} --> {A, F, C} --> {A, F, C, D} --> {A, F, C, D, E} --> {A, F, C, D, E, B} Kruskal 算法(7.5 分,每步 1.5 分) -->TE={(B, E)} -->{(B,E), (C, D)} -->{(B,E), (C, D), (A,F)} -->{(B,E), (C, D), (A,F), (C, F)} -->{(B,E), (C, D), (A,F), (C, F), (E,F)} 2、 (15 分)解答:按照单位效益从大到小依次排列这 7 个物品为:FBGDECA。将它们的序
