算法设计与分析补考试卷
计算机算法试题(含答案)

计算机算法试题(含答案)算法设计与分析试卷一、填空题(20分,每空2分)1、算法的性质包括输入、输出、___、有限性。
2、动态规划算法的基本思想就将待求问题_____、先求解子问题,然后从这些子问题的解得到原问题的解。
3、设计动态规划算法的4个步骤:(1)找出____,并刻画其结构特征。
(2)_______。
(3)_______。
(4)根据计算最优值得到的信息,_______。
4、流水作业调度问题的johnson算法:(1)令N1=___,N2={i|ai>=bj};(2)将N1中作业依ai的___。
5、对于流水作业高度问题,必存在一个最优调度π,使得作业π(i)和π(i+1)满足Johnson不等式_____。
6、最优二叉搜索树即是___的二叉搜索树。
二、综合题(50分)1、当(a1,a2,a3,a4,a5,a6)=(-2,11,-4,13,-5,-2)时,最大子段和为∑ak(2<=k<=4)____(5分)2、由流水作业调度问题的最优子结构性质可知,T(N,0)=______(5分)3、最大子段和问题的简单算法(10分)int maxsum(int n,int *a,int & bestj){intsum=0;for (int i=1;i<=n;i++)for (int j=i;j<=n;j++)int thissum=0;for(int k=i;k<=j;k++)_____;if(thissum>sum){sum=thissum;______;bestj=j;}} return sum;}4、设计最优二叉搜索树问题的动态规划算法OptimalBinarysearchTree (15分)Void OptimalBinarysearchTree(int a,int n,int * * m, int* * w){for(int i=0;i<=n;i++) {w[i+1][i]=a[i]; m[i+1][i]=____;}for(int r=0;r<n;r++)< p="">for(int i=1;i<=n-r;i++){int j=i+r;w[i][j]=w[i][j-1]+a[j]+b[j];m[i][j]=______;s[i][j]=i;for(int k=i+1;k<=j;k++){int t=m[i][k-1]+m[k+1][j];if(_____) {m[i][j]=t; s[i][j]=k;}}m[i][j]=t; s[i][j]=k;}}5、设n=4, (a1,a2,a3,a4)=(3,4,8,10), (b1,b2,b3,b4)=(6,2,9,15) 用两种方法求4个作业的最优调度方案并计算其最优值(15分)三、简答题(30分)1、将所给定序列a[1:n]分为长度相等的两段a[1:n/2]和a[n/2+1:n],分别求出这两段的最大子段和,则a[1:n]的最大子段和有哪三种情形(10分)答:2、由0——1背包问题的最优子结构性质,可以对m(i,j)建立怎样的递归式 (10分)3、0——1背包求最优值的步骤分为哪几步(10分)参考答案:填空题:确定性分解成若干个子问题最优解的性质递归地定义最优值以自底向上的方式计算出最优值构造最优解 {i|ai<="" p="">依bi的非增序排序min{bπ(i),aπ(i+1)}≥min{bπ(i+1),aπ(i)}最小平均查找长度综合题:20 min{ai+T(N-{i},bi)}(1=<i<=n) 0="" besti="i" m[i+1][j]="" p="" t<m[i][j]<="" thissum+="a[k]">法一:min(ai,bj)<=min(aj,bi)因为 min(a1,b2)<=min(a2,b1)所以1→2 (先1后2)由 min(a1,b3)<=min(a3,b1)得1→3 (先1后3)同理可得:最后为1→3→4→2法二:johnson算法思想N1={1,3,4} N2={2}N11={1,3,4} N12={2}所以N11→N12得:1→3→4→2简答题:1 、(1)a[1:n]的最大子段和与a[1:n/2]的最大子段和相同。
《算法设计与分析》考试题目及答案(DOC)

《算法设计与分析》考试题目及答案(DOC)D. 预排序与递归调用7. 回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。
A.广度优先B. 活结点优先 C.扩展结点优先 D. 深度优先8. 分支限界法在问题的解空间树中,按(A)策略,从根结点出发搜索解空间树。
A.广度优先B. 活结点优先 C.扩展结点优先 D. 深度优先9. 程序块(A)是回溯法中遍历排列树的算法框架程序。
A.B.C.D. void backtrack (int t){if (t>n) output(x);elsefor (int i=t;i<=n;i++) {swap(x[t], x[i]);if (legal(t)) backtrack(t+1); swap(x[t], x[i]);}}void backtrack (int t){if (t>n) output(x);elsefor (int i=0;i<=1;i++) {x[t]=i;if (legal(t)) backtrack(t+1); }}10. 回溯法的效率不依赖于以下哪一个因素?(C )A.产生x[k]的时间;B.满足显约束的x[k]值的个数;C.问题的解空间的形式;D.计算上界函数bound的时间;E.满足约束函数和上界函数约束的所有x[k]的个数。
F.计算约束函数constraint的时间;11. 常见的两种分支限界法为(D)A. 广度优先分支限界法与深度优先分支限界法;B. 队列式(FIFO)分支限界法与堆栈式分支限界法;C. 排列树法与子集树法;D. 队列式(FIFO)分支限界法与优先队列式分支限界法;12. k带图灵机的空间复杂性S(n)是指(B)A.k带图灵机处理所有长度为n的输入时,在某条带上所使用过的最大方格数。
B.k带图灵机处理所有长度为n的输入时,在k条带上所使用过的方格数的总和。
C.k带图灵机处理所有长度为n的输入时,在k条带上所使用过的平均方格数。
算法设计与分析补考试卷

第5页
共5页
2.用图解法给出分治方法求数组 S={30,41,42,12,1,55,21,43}最大元素 的过程。
3.设有一批排好顺序的数据存放在数组 s[1..n]中,请设计数法求元素 x。
第4页
共5页
4.设有 n=5 堆沙子,沙子堆的质量向量 W=(13,7,8,16,21),请画出将 n 堆 沙子归并成一堆的最小代价树, 并写出归并过程中的动态方程和求解过程。 (规则: 每 次只能将相邻的两堆沙子堆成一堆,经过 n-1 次归并之后成为一堆,其总代价为进行 过程中新产生的沙堆的质量之和。 )
1.用生成函数法求解:
T (1) = 1 ( n ≥ 2) T ( n) = 2T ( n − 1) + 1Fra bibliotek第1页
共5页
2.用公式解法求解递归方程 T (n) + 5T (n − 1) + 6T (n − 2) = 3n 的一个特解
2
二、递归算法应用题 (每小题 10 分,共 20 分)
1.将如下递归程序改成非递归程序: Procedure f(n:int) : int begin if n=0 then f:=1 Else if n=1 then f:=1 Else f:=f(n-1)*n endp;
第2页
共5页
2.写出如下程序的运行结果: procedure printRV(N:int) begin if N>0 then begin write (N mod 10); printRV(N div 10); end; endp; 调用 printRV(12345).
三、算法应用题(每小题 15 分,共 60 分) 算法应用题( 1.求下面非 0/1 背包问题的最优解: 已知 n=7,M=15,(p1,p2,p3,p4,p5,p6,p7)=(10,5,15,7,6,18,3), (w1,w2,w3,w4,w5,w6,w7)=(2,3,5,7,1,4,1)
算法分析与设计试卷及参考答案

算法分析与设计试卷及参考答案济南⼤学继续教育学院算法分析与设计试卷(A)学年:学期:年级:专业:学习形式:层次:(本试题满分100分,时间90分钟)⼀、单选题(每⼩题2分,共计20分。
)1. 下列情况不适合使⽤计数排序的是()。
A 要排序的数据表的数量很⼤B 要排序的数据表中有相同的关键字C 要排序的数据表基本有序D 要排序的数据表元素各不相同2. 集合{A,B}的幂集合为()。
A.{A},{B}B.{A},{B},ΦC. { {A},{B}} D {{A,B},{A},{B},Φ}3.下列字符串序列不符合字典排序的是()。
A. abc acb bca B. abc acb cbaC. bac bca abc D abc bac bca4.对于根树,出度为零的节点为()。
A0节点B根节点C叶节点D分⽀节点5.对完全⼆叉树⾃顶向下,从左向右给节点编号,节点编号为10的⽗节点编号为()。
A0B2C4D66.下列程序段的算法时间的复杂度为()。
for i ←0 to n dofor j ←0 to m do s //某种基本操作A O(n2)B O(m2)C (m+n)D O(m*n)7.三个盘⼦的汉诺塔,⾄少要执⾏移动操作的次数为 ( )。
A 1次B 3次C 6次D 7次8.与算法英⽂单词algorithm具有相同来源的单词是()。
A logarithmB algirosC arithmosD algebra9.从排序过程是否完全在内存中显⽰,排序问题可以分为()。
A稳定排序与不稳定排序B内排序与外排序C直接排序与间接排序D主排序与辅助排序10.下列()不是衡量算法的标准。
A时间效率B空间效率C问题难度D适应能⼒⼆、简答题(每题8分,共计24分。
)1.贪婪技术的基本思想是什么?它有哪些应⽤(给出2种)?2. 拓扑排序的基本思想是什么?它可⽤于哪些实际问题中(给出2种)?3.是么是算法,算法与程序有什么区别?三、算法设计题(每题14分,共计56分。
中南大学算法设计与分析试卷及答案(补考)

中南大学考试试卷(补考)2008 -- 2009学年 2学期时间110分钟算法分析与设计课程 48学时 3学分考试形式:闭卷专业年级:信安0601-0602 总分100分,占总评成绩70 %注:此页不作答题纸,请将答案写在答题纸上一、基本概念题(本大题40分)1、一般情况下,如何计算执行顺序、选择、循环、子过程调用结构的运算时间?(6分)2、设T(n)=n,根据T(n)= O(f(n))的定义,下列等式是否成立?(4分)1)T(n)= O(n2)2)O(n2) = T(n)3)T(n)= O(log n)+ O(n)4)T(n) = O(n) *O(log n)3、与顺序查找算法相比,折半查找算法的时间复杂性有多大程度的降低?它是如何提高算法的效率的?(6分)4、简述归并排序算法和快速排序算法的分治方法。
(6分)5、一般背包问题的贪心算法可以获得最优解吗?物品的选择策略是什么?(6分)6、Prim算法和Dijkstra算法选择下一个节点的标准分别是什么?对于有负边的无向图,Prim算法和Dijkstra算法还能保证获得最优解吗?(6分)7、比较回溯法和分支限界法的搜索方式,哪种方法更适合找最优解问题?(6分)二、分析算法的时间复杂性,需要写出分析过程(本大题20分)1、用分割元素v将有n个元素的数组分割成元素大于v和小于v的两部分,需要花多少时间(要讲出道理)。
(5分)2、如果修改归并排序算法,将数组分成1/3和2/3大小不等的两部分,分别排序后再归并,算法的最坏时间复杂度有什么变化?(5分)3、设函数f1、f2和f3的处理时间分别为O(n)、O(n2) 和O(1),分析下列流程的时间复杂性:1)基本结构procedure A1(int n,b) (4分) if b < 3 thenf1elsef2for i←1 to n-1 dof3end2) 递归结构procedure A2(int n) (6分) if n = 1 then{f3return}else{ A2(n-1)f1}end三、算法理解(本大题24分)1、在一个空间安排n =5个活动,开始时间和结束时间分别为[8,10), [12,14),[9, 11:30), [11:40,13),[13:30,15)。
(完整版)算法设计与分析考试题及答案

一、填空题(20分)1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_________,________,________,__________,__________。
2.算法的复杂性有_____________和___________之分,衡量一个算法好坏的标准是______________________。
3.某一问题可用动态规划算法求解的显著特征是____________________________________。
4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y的一个最长公共子序列_____________________________。
5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含___________。
6.动态规划算法的基本思想是将待求解问题分解成若干____________,先求解___________,然后从这些____________的解得到原问题的解。
7.以深度优先方式系统搜索问题解的算法称为_____________。
8.0-1背包问题的回溯算法所需的计算时间为_____________,用动态规划算法所需的计算时间为____________。
9.动态规划算法的两个基本要素是___________和___________。
10.二分搜索算法是利用_______________实现的算法。
二、综合题(50分)1.写出设计动态规划算法的主要步骤。
2.流水作业调度问题的johnson算法的思想。
3.若n=4,在机器M1和M2上加工作业i所需的时间分别为a i和b i,且(a1,a2,a3,a4)=(4,5,12,10),(b1,b2,b3,b4)=(8,2,15,9)求4个作业的最优调度方案,并计算最优值。
4.使用回溯法解0/1背包问题:n=3,C=9,V={6,10,3},W={3,4,4},其解空间有长度为3的0-1向量组成,要求用一棵完全二叉树表示其解空间(从根出发,左1右0),并画出其解空间树,计算其最优值及最优解。
算法设计与分析参考试卷

算法设计与分析参考试卷此处不能书写此处不能书写此处不能书…写………此处不能书写……………………………………………装……算法设计与分析参考试卷一、单项选择题1. 当输入规模为n时,下列算法渐进复杂性中最低的是(A )。
.A. 5nB. n2C. 2n2D. n! 2.二分搜索算法是利用(A )实现的算法。
A、分治策略B、动态规划法C、贪心法D、回溯法 3.最大效益优先是( A )的一种搜索方式。
A.分支界限法 B.动态规划法 C.贪心法 D.回溯法4. 回溯法搜索状态空间树是按照( C )的顺序。
A.中序遍历 B.广度优先遍历 C.深度优先遍历 D.层次优先遍历……此…处…不能…书…写…线…………………………………订……5. 回溯法解旅行售货员问题时的解空间树是( B )。
A、子集树树6.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法法7.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法B、动态规划法C、贪心法D、回溯法B、动态规划法C、贪心法D、回溯B、排列树C、深度优先生成树D、广度优先生成…8.快速排序算法是利用( A )实现的算法。
A.分治策略 B.动态规划法 C.贪心法 D.回溯法此处不能书写…二、填空题1. 通俗地讲,算法是指解决问题的一种方法或一个过程。
2.出于“平衡子问题”的思想,通常分治法在分解原问题时,形成若干子问题,这些子问题的规模都大致相同。
三、简答题1.简述单源最短路径问题,该问题适合采用什么方法求解。
第 1 页共 9 页…………………………此处不能书写……一、问题单源最短路径问题[Dijkstra实现]带权有向图G(E,V), 找出从给定源顶点s到其它顶点v的权最小路径。
“最短路径” = 最小权二、问题求解:求1到5的最短路径值?三、执行过程:如果大家对这个问题的要求还不是很明白的话那么我再带着大家走一遍:第2页共9页此处不能书写此处不能书写此处不能书…写………此处不能书写……………………………………………装……第一次:从1-->2:10 此时从1-->3没有路径所有是无穷大 1-->4:30 1-->5:100那么我们发现这一组组最小的是10也就是2这一点,所以我们再把2这一点加到集合里面来,那么2这一点就可以当作一个桥来用,第二次:此时我们再从1à3就可以通过1-->2-->3:60其他的1-->4:301-->5:100 可以发现此时最小的应该是3,所以我们再把3这一点加入到这个集合里面来,如此重复的去做这些事情,到最后可以发现1à5的最短路径应该是60(1-->4-->3-->5)1. int dijkstra(int s,int t) {2.3. 初始化S={空集}4.5. d[s] = 0; 其余d值为正无穷大6.7. while (NOT t in S) 8.9. { 10.11. 取出不在S中的最小的d[i]; 12.13. for (所有不在S中且与i相邻的点j) 14.15. if (d[j] > d[i] + cost[i][j]) d[j] = d[i] + cost[i][j]; (“松弛”操作” ) 16.17. S = S + {i}; //把i点添加到集合S里 18.19. } 20.21. return d[t]; 22. 23. }……此…处…不能…书…写…线…………………………………订………此处不能书写…2.二分搜索要解决什么问题?二分搜索如何体现分治的思想? 简述二分搜索算法的步骤.…………………………此处不能书写查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最折第 3 页共 9 页……半坏的情况下用O(log n)完成搜索任务。
(完整版)算法设计与分析考试题及答案,推荐文档

____________________________________。 4.若序列 X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列
X 和 Y 的一个最长公共子序列_____________________________。 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至
和
之分。
5、 f(n)= 6×2n+n2,f(n)的渐进性态 f(n)= O(
)
6、 贪心算法总是做出在当前看来
的选择。也就是说贪心算法并不从整体最优考
虑,它所做出的选择只是在某种意义上的
。
7、 许多可以用贪心算法求解的问题一般具有 2 个重要的性质:
性质和
性质。
二、简答题(本题 25 分,每小题 5 分)
五、算法理解题(本题 5 分) 设有 n=2k 个运动员要进行循环赛,
现设计一个满足以下要求的比赛日程表:
①每个选手必须与其他 n-1 名选手比赛各一次; ②每个选手一天至多只能赛一次;
③循环赛要在最短时间内完成。
我去(人1)如也果 就n=2k有,循人环赛!最少为需要U进R行扼几天腕; 入站内信不存在向你偶同意调剖沙 (2)当 n=23=8 时,请画出循环赛日程表。
六、算法设计题(本题 15 分) 分别用贪心算法、动态规划法、回溯法设计 0-1 背包问题。要求:说明所使用的算法
策略;写出算法实现的主要步骤;分析算法的时间。 七、算法设计题(本题 10 分)
建议收藏下载本文,以便随时学习! 通过键盘输入一个高精度的正整数 n(n 的有效位数≤240),去掉其中任意 s 个数字后, 剩下的数字按原左右次序将组成一个新的正整数。编程对给定的 n 和 s,寻找一种方案, 使得剩下的数字组成的新数最小。 【样例输入】 178543 S=4 【样例输出】 13
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试卷编号: 试卷编号: 课程编号: 课程编号: 适用班级: 适用班级: 学院: 学院:
题 号 题 分 得 分
(A )卷 卷
课程名称: 课程名称: 姓名: 姓名: 专业: 专业:
一 20 二 20
算法设计与分析 学号: 学号:
考试形式: 考试形式: 闭卷 班级: 班级:
考试日期: 考试日期:
三 60 总分 100 累分人 签 名
请查看试卷中是否有缺页或破损。 如有立即举手报告以便更换。 考生注意事项:1、本试卷共 5 页, 2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。
一、求解下列递推方程(每小题 10 分,共 20 分)
1.将如下递归程序改成非递归程序: Procedure f(n:int) : int begin if n=0 then f:=1 Else if n=1 then f:=1 Else f:=f(n-1)*n endp;
第2页
共5页
2.写出如下程序的运行结果: procedure printRV(N:int) begin if N>0 then begin write (N mod 10); printRV(N div 10); end; endp; 调用 printRV(12345).
第5页
共5页
三、算法应用题(每小题 15 分,共 60 分) 算法应用题( 1.求下面非 0/1 背包问题的最优解: 已知 n=7,M=15,(p1,p2,p3,p4,p5,p6,p7)=(10,5,15,7,6,18,3), (w1,w2,w3,w4,w5,w6,w7)=(2,3,5,7,1,4,1)
第3页
共5页
2.用图解法给出分治方法求数组 S={30,41,42,12,1,55,21,43}最大元素 的过程。
3.设有一批排好顺序的数据存放在数组 s[1..n]中,请设计数法求元素 x。
第4页
共5页
பைடு நூலகம்
4.设有 n=5 堆沙子,沙子堆的质量向量 W=(13,7,8,16,21),请画出将 n 堆 沙子归并成一堆的最小代价树, 并写出归并过程中的动态方程和求解过程。 (规则: 每 次只能将相邻的两堆沙子堆成一堆,经过 n-1 次归并之后成为一堆,其总代价为进行 过程中新产生的沙堆的质量之和。 )
1.用生成函数法求解:
T (1) = 1 ( n ≥ 2) T ( n) = 2T ( n − 1) + 1
第1页
共5页
2.用公式解法求解递归方程 T (n) + 5T (n − 1) + 6T (n − 2) = 3n 的一个特解
2
二、递归算法应用题 (每小题 10 分,共 20 分)