最新算法设计与分析考试题(自测)
《算法设计与分析》考试题目及答案(DOC)
![《算法设计与分析》考试题目及答案(DOC)](https://img.taocdn.com/s3/m/08f2eb70ff00bed5b9f31d96.png)
《算法设计与分析》考试题目及答案(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条带上所使用过的平均方格数。
设计与算法分析考试题库
![设计与算法分析考试题库](https://img.taocdn.com/s3/m/648206231611cc7931b765ce05087632311274bf.png)
设计与算法分析考试题库一、选择题(每题2分,共20分)1. 在算法分析中,时间复杂度用来衡量算法的什么?A. 可读性B. 执行速度C. 资源消耗D. 可维护性2. 以下哪个排序算法的时间复杂度为O(n^2)?A. 快速排序B. 归并排序C. 选择排序D. 堆排序3. 动态规划与分治算法的主要区别是什么?A. 递归使用B. 子问题重叠C. 问题分解方式D. 算法效率4. 递归算法的基本原理是什么?A. 循环调用B. 重复执行C. 问题分解D. 迭代求解5. 在图算法中,深度优先搜索(DFS)和广度优先搜索(BFS)的主要区别在于?A. 搜索顺序B. 搜索深度C. 使用的数据结构D. 搜索效率6. 哈希表的冲突解决方法中,开放定址法和链地址法的主要区别是什么?A. 存储方式B. 冲突处理机制C. 访问速度D. 空间利用率7. 贪心算法在解决优化问题时,其选择的策略是?A. 随机选择B. 局部最优C. 全局最优D. 动态选择8. 以下哪个算法是解决最近公共祖先问题的?A. 二分查找B. 欧拉路径C. 弗洛伊德算法D. 树的深度优先搜索9. 算法的时间复杂度为O(1)表示该算法的执行时间与输入规模的大小?A. 成正比B. 成反比C. 无关D. 指数关系10. 在大O符号中,O(1)、O(log n)、O(n)、O(n log n)、O(n^2)、O(2^n),按算法效率从高到低排序正确的是?A. O(1), O(log n), O(n), O(n log n), O(n^2), O(2^n)B. O(2^n), O(n^2), O(n log n), O(n), O(log n), O(1)C. O(1), O(log n), O(n log n), O(n), O(n^2), O(2^n)D. O(1), O(n), O(log n), O(n log n), O(n^2), O(2^n)二、简答题(每题10分,共30分)11. 简述二分查找算法的基本思想及其时间复杂度。
算法设计与分析试题及答案
![算法设计与分析试题及答案](https://img.taocdn.com/s3/m/606372c20b4e767f5bcfce06.png)
1. 按分治策略求解棋盘覆盖问题时,对于如图所示的24×24的特殊棋盘,共需要多少个L 型骨牌;并在棋盘上填写L 型骨牌的覆盖情况。
2. 假设有7个物品,给出重量和价值。
若这些物品均不能被分割,且背包容量M =140,使用回溯方法求解此0-1背包问题。
请画出状态空间搜索树。
3. 假设有7个物品,它们的重量和价值如下表所示。
若这些物品均可以被分割,且背包容量M=140,使用贪心算法求解此背包问题。
请写出求解策略和求解过程。
W (35,30,50,60,40,10,25)p (10,40,30,50,35,40,30)4. 在给出的电路板中,阴影部分是已作了封锁标记的方格,请按照队列式分支限界法在图中确定a 到b 的最短布线方案,要求布线时只能沿直线或直角进行,在图中标出求得最优解时各方格情况。
5. 画出字符表的哈夫曼编码对应的二叉树。
6. 已知1()*()i i k k ij r r A a +=,k =1,2,3,4,5,6,r 1=5,r 2=10,r 3=3,r 4=8,r 5=5,r 6=20,r 7=6,求矩阵链积A 1×A 2×A 3×A 4×A 5×A 6的最佳求积顺序。
7. 给出城市网络图,售货员要从城市1出发,经过所有城市回到城市1,画出该问题的解空间树,描述出用优先队列式分支限界法求解时的搜索情况。
表示出优先队列、当前扩展结点等的变化情况。
8. 依据优先队列式分支限界法,求从s 点到t 点的单源最短路径,画出求得最优解的解空间树。
一、假设有7个物品,它们的重量和价值如下表所示。
若这些物品均不能被分割,且背包容量M=150,使用回溯方法求解此背包问题。
请写出状态空间搜索树(20分)。
答:按照单位效益从大到小依次排列这7个物品为:FBGDECA 。
将它们的序号分别记为1~7。
则可生产如下的状态空间搜索树。
其中各个节点处的限界函数值通过如下方式求得:【排序1分】5x =6x =7x =17分,每个节点1分】a .1501154040305035190.62540-++++⨯=7(1,1,1,1,,0,0)8b. 1501154040305030177.560-++++⨯=7(1,1,1,1,0,,0)12c .4040305010170++++=(1,1,1,1,0,0,1)d. 1501054040303530167.560-++++⨯=3(1,1,1,0,1,,0)4e. 150130404050353017560-++++⨯=1(1,1,0,1,1,,0)3f. 1501304040503510170.7135-++++⨯=4(1,1,0,1,1,0,)7g. 40405030160+++=(1,1,0,1,0,1,0)h. 1501404040353010146.8535-++++⨯=2(1,1,0,0,1,1,)7i.1501254030503530167.560-++++⨯=5(1,0,1,1,1,,0)12 j. 1501454030503530157.560-++++⨯=1(0,1,1,1,1,,0)12在Q 1处获得该问题的最优解为(1,1,1,1,0,0,1),背包效益为170。
2023年9月算法设计与分析等级考试试卷(二级)
![2023年9月算法设计与分析等级考试试卷(二级)](https://img.taocdn.com/s3/m/090c5d03bf1e650e52ea551810a6f524ccbfcb00.png)
2023年9月算法设计与分析等级考试试卷(二级)一、选择题(每题2分,共20分)1. 算法是一系列 _______ 的描述。
A. 立场B. 步骤C. 规则D. 结论2. 在算法设计中,时间复杂度衡量的是 _______。
A. 算法的可读性B. 算法的执行时间C. 算法的正确性D. 算法的内存消耗3. 下列哪种算法在平均情况下具有最快的执行速度?A. 冒泡排序B. 快速排序C. 插入排序D. 选择排序4. 以下哪种数据结构可以保证插入和删除的时间复杂度都是O(1)?A. 队列B. 堆栈C. 链表D. 数组5. 二分查找算法适用于 _______。
A. 有序数组B. 无序数组C. 链表D. 队列6. 动态规划算法常用于解决 _______ 问题。
A. 最短路径B. 最大子序列和C. 最小生成树D. 最大流量7. 拓扑排序算法常用于解决 _______ 问题。
A. 最短路径B. 单源最短路径C. 最小生成树D. 任务调度8. 由一棵树的任意两个节点之间的路径长度定义的最长路径称为 _______。
A. 直径B. 深度C. 高度D. 平衡因子9. 在图的遍历中,使用深度优先搜索算法可以实现 _______ 。
A. 最短路径B. 最小生成树C. 拓扑排序D. 连通性检测10. 下列哪种排序算法的最好、最坏和平均时间复杂度都为O(nlogn)?A. 冒泡排序B. 插入排序C. 归并排序D. 选择排序二、填空题(每题2分,共20分)1. 平均时间复杂度为 O(n^2) 的排序算法是 _______ 排序。
2. 在哈希表中,冲突解决的方法有 _______ 和 _______。
3. 图的最短路径可以使用 _______ 算法进行求解。
4. 广度优先搜索算法可以用于判断一个图是否是 _______ 图。
5. 动态规划中,如果状态转移方程具有最优子结构和重叠子问题性质,可以使用 _______ 算法进行求解。
6. 堆排序算法是一种 _______ 排序算法。
(完整word版)计算机算法设计分析试题及答案
![(完整word版)计算机算法设计分析试题及答案](https://img.taocdn.com/s3/m/3aa3f8a1a58da0116d174902.png)
算法设计与分析试卷一、填空题(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++)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<bi} ai的非减序排序;将N2中作业依bi的非增序排序min{bπ(i),aπ(i+1)}≥min{bπ(i+1),aπ(i)}最小平均查找长度综合题:20 min{ai+T(N-{i},bi)}(1=<i<=n) thissum+=a[k] besti=i 0 m[i+1][j] t<m[i][j]法一: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}N¹1={1,3,4} N¹2={2}所以 N¹1→N¹2得:1→3→4→2简答题:1 、(1)a[1:n]的最大子段和与a[1:n/2]的最大子段和相同。
算法设计与分析参考试卷
![算法设计与分析参考试卷](https://img.taocdn.com/s3/m/54b43026f705cc175427093b.png)
算法设计与分析参考试卷此处不能书写此处不能书写此处不能书…写………此处不能书写……………………………………………装……算法设计与分析参考试卷一、单项选择题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)完成搜索任务。
(完整版)算法设计与分析考试题及答案,推荐文档
![(完整版)算法设计与分析考试题及答案,推荐文档](https://img.taocdn.com/s3/m/54c7798ef111f18582d05a32.png)
____________________________________。 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
最新算法设计与分析试卷(A)及答案
![最新算法设计与分析试卷(A)及答案](https://img.taocdn.com/s3/m/066fc4a9a58da0116c1749b6.png)
考试课程:班级:姓名:学号:-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------考试课程:班级:姓名:学号:------------------------------------------------- 密 ---------------------------------- 封 ----------------------------- 线 ---------------------------------------------------------参考答案一、填空1、空间复杂度 时间复杂度2、回溯法3、递归算法4、渐进确界或紧致界5、原问题的较小模式 递归技术6、问题的计算复杂性分析有一个共同的客观尺度7、②③④①8、问题的最优解包含其子问题的最优解9、局部最优 10、正确的三、简答题1、高级语言更接近算法语言,易学、易掌握,一般工程技术人员只需要几周时间的培训就可以胜任程序员的工作;高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;高级语言不依赖于机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可植性好、重用率高;把繁杂琐碎的事务交给编译程序,所以自动化程度高,开发周期短,程序员可以集中时间和精力从事更重要的创造性劳动,提高程序质量。
2、 ①不能保证最后求得的解是最佳的;即多半是近似解。
(少数问题除外)②策略容易发现(关键:提取清楚问题中的维度), 而且运用简单,被广泛运用。
③策略多样,结果也多样。
④算法实现过程中,通常用到辅助算法:排序3、解:① 因为:;01-10n n )1-10n n (lim 222=+-+→∞n n 由渐近表达式的定义易知: 1-10n n 22+是n ;的渐近表达式。
算法分析与设计试题及答案
![算法分析与设计试题及答案](https://img.taocdn.com/s3/m/f3765a12bf23482fb4daa58da0116c175f0e1ea7.png)
算法分析与设计试题及答案一、选择题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. 请简述贪心算法的特点及其应用场景。
答案:贪心算法的特点是每一步都采取当前状态下最优的选择,以期望得到全局最优解。
然而,贪心算法并不一定能求解所有问题的最优解,但对于一些特定问题,贪心算法往往能得到近似最优解。
算法分析考试题及答案
![算法分析考试题及答案](https://img.taocdn.com/s3/m/4f03d5ba77eeaeaad1f34693daef5ef7bb0d1236.png)
算法分析考试题及答案一、单项选择题(每题2分,共20分)1. 以下哪个算法的时间复杂度是O(n^2)?A. 冒泡排序B. 二分查找C. 快速排序D. 线性搜索答案:A2. 在下列排序算法中,哪种算法的平均时间复杂度为O(n log n)?A. 插入排序B. 选择排序C. 归并排序D. 堆排序答案:C3. 动态规划与分治法的主要区别在于:A. 递归的使用B. 问题的分解方式C. 存储中间结果D. 时间复杂度答案:C4. 以下哪种数据结构最适合实现图的邻接表?A. 数组B. 链表C. 栈D. 队列答案:B5. 在图的遍历中,深度优先搜索(DFS)使用的是哪种数据结构?A. 栈B. 队列C. 链表D. 数组答案:A6. 哈希表解决冲突的方法不包括以下哪种?A. 开放寻址法B. 链地址法C. 线性探测法D. 二分查找法答案:D7. 以下哪种算法是用于解决旅行商问题(TSP)的近似算法?A. 动态规划B. 贪心算法C. 分治法D. 遗传算法答案:D8. 在算法分析中,大O表示法描述的是算法的:A. 最优情况时间复杂度B. 平均情况时间复杂度C. 最坏情况时间复杂度D. 实际运行时间答案:C9. 以下哪个排序算法是稳定的?A. 快速排序B. 归并排序C. 堆排序D. 选择排序答案:B10. 算法的时间复杂度为O(1)意味着:A. 算法运行时间与输入大小无关B. 算法运行时间与输入大小成正比C. 算法运行时间与输入大小成对数关系D. 算法运行时间与输入大小成平方关系答案:A二、填空题(每题2分,共20分)1. 在算法分析中,我们通常使用______来描述算法的运行时间。
答案:大O表示法2. 递归算法的时间复杂度通常可以用______来表示。
答案:递归关系式3. 在排序算法中,______排序算法的时间复杂度在最好、最坏和平均情况下都是O(n)。
答案:桶4. 动态规划算法通常用于解决具有______性质的问题。
《算法设计与分析》考试题目及答案
![《算法设计与分析》考试题目及答案](https://img.taocdn.com/s3/m/c131ff76cf84b9d528ea7a63.png)
《算法分析与设计》期末复习题一、选择题1.应用Johnson 法则的流水作业调度采用的算法是(D )A. 贪心算法B. 分支限界法C.分治法D. 动态规划算法2.Hanoi 塔问题如下图所示。
现要求将塔座A 上的的所有圆盘移到塔座B 上,并仍按同样顺序叠置。
移动圆盘时遵守Hanoi 塔问题的移动规则。
由此设计出解Hanoi 塔问题的递归算法正确的为:(B )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); }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); }3. 动态规划算法的基本要素为(C)A. 最优子结构性质与贪心选择性质B.重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质D. 预排序与递归调用4. 算法分析中,记号O表示(B),记号Ω表示(A),记号Θ表示(D)。
A.渐进下界B.渐进上界C.非紧上界D.紧渐进界E.非紧下界5. 以下关于渐进记号的性质是正确的有:(A)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))=⇔=6.能采用贪心算法求最优解的问题,一般具有的重要性质为:(A)A. 最优子结构性质与贪心选择性质B.重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质D. 预排序与递归调用7. 回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。
《算法设计与分析》试卷及答案
![《算法设计与分析》试卷及答案](https://img.taocdn.com/s3/m/5318cc8fc67da26925c52cc58bd63186bdeb9241.png)
《算法设计与分析》试卷及答案算法设计与分析考试复习试卷《算法设计与分析》试卷1一、多项选择题(每空2分,共20分):1、以下关于算法设计问题的叙述中正确的是__________。
A、计算机与数值问题的求解——方程式求根、插值问题、数值积分、函数逼近等有关B、利用计算机无法解决非数值问题C、计算机在解决分类、语言翻译、图形识别、解决高等代数和组合分析等方面的数学问题、定理证明、公式推导乃至日常生活中各种过程的模拟等问题中,主要进行的是判断、比较,而不是算术运算D、算法设计与分析主要研究对象是非数值问题,当然也包含某些数值问题2、算法的特征包括_________。
A、有穷性B、确定性C、输入和输出D、能行性或可行性3、以下描述是有关算法设计的基本步骤:①问题的陈述②算法分析③模型的拟制④算法的实现⑤算法的详细设计⑥文档的编制,应与其它环节交织在一起其中正确的顺序是__________。
A、①②③④⑤⑥B、①③⑤②④⑥C、②④①③⑤⑥D、⑥①③⑤②④4、以下说法正确的是__________。
A、数学归纳法可以证明算法终止性B、良序原则是证明算法的正确性的有力工具C、x = 小于或等于x的最大整数(x的低限)D、x = 小于或等于x的最大整数(x的高限)5、汉诺塔(Hanoi)问题中令h(n)为从A移动n个金片到C 上所用的次数,则递归方程为__________,其初始条件为__________,将n个金片从A柱移到C柱上的移动次数是__________;设菲波那契(Fibonacci)数列中Fn为第n个月时兔子的对数,则有递归方程为__________,其中F1=F2=__________。
A、Fn=Fn-1+Fn-2B、h(n)= 2h(n-1)+1C、1D、h(1)= 1E、h(n)=2n-1F、06、在一个有向连通图中(如下图所示),找出点A到点B的一条最短路为____ ______。
A、最短路:1→3→5→8→10,耗费:20B、最短路:1→4→6→9→10,耗费:16。
算法设计与分析期末考试卷及答案a
![算法设计与分析期末考试卷及答案a](https://img.taocdn.com/s3/m/8efb44c84a7302768e9939d7.png)
算法设计与分析期末考试卷及答案a-CAL-FENGHAI.-(YICAI)-Company One1考生 信 息 栏 ______学院______系______ 专业 ______年级姓名______学号__装订线考生 信息栏______学院______系______ 专业 ______年级姓名______学号_装订线pro2(n) ex1(n/2) end if return end ex1 3.用Floyd 算法求下图每一对顶点之间的最短路径长度,计算矩阵D 0,D 1,D 2和D 3,其中D k [i, j]表示从顶点i 到顶点j 的不经过编号大于k 的顶点的最短路径长度。
三.算法填空题(共34分) 1.(10分)设n 个不同的整数按升序存于数组A[1..n]中,求使得A[i]=i 的下标i 。
下面是求解该问题的分治算法。
算法 SEARCH 输入:正整数n ,存储n 个按升序排列的不同整数的数组A[1..n]。
输出:A[1..n]中使得A[i]=i 的一个下标i ,若不存在,则输出 no solution 。
i=find ( (1) ) if i>0 then output i else output “no solution ” end SEARCH 过程 find (low, high) // 求A[low..high] 中使得A[i]=i 的一个下标并返回,若不存在,考生 信息栏______学院______系______ 专业 ______年级姓名______学号_____装订线《算法设计与分析》期考试卷(A)标准答案一. 填空题:1. 元运算 考 生 信息栏______学院______系______ 专业 ______年级姓名______学号_____装订线2. O3. ∑∈nD I I t I p )()(4. 将规模为n 的问题分解为子问题以及组合相应的子问题的解所需的时间5. 分解,递归,组合6. 在问题的状态空间树上作带剪枝的DFS 搜索(或:DFS+剪枝)7. 前者分解出的子问题有重叠的,而后者分解出的子问题是相互独立(不重叠)的8. 局部9. 高10. 归并排序算法11. 不同12. v=random (low, high); 交换A[low]和A[v]的值随机选主元13. 比较n二. 计算题和简答题:1. 阶的关系:(1) f(n)= O(g(n))(2) f(n)=Ω(g(n))(3) f(n)=Ω(g(n))(4) f(n)= O(g(n))(5) f(n)=Θ(g(n))阶最低的函数是:100阶最高的函数是:n 32. 该递归算法的时间复杂性T(n)满足下列递归方程:⎩⎨⎧>+===1n ,n log T(n/2)T(n)1n , 1T(n)2 将n=k 2, a=1, c=2, g(n)=n log 2, d=1代入该类递归方程解的一般形式得: T(n)=1+∑-=1k 0i i 22n log =1+k n log 2-∑-=1k 0i i =1+ k n log 2-2)1k (k -=n log 2122+n log 212+1 所以,T(n)= n log 2122+n log 212+1=)(log 2n Θ。
算法与分析考试题及答案
![算法与分析考试题及答案](https://img.taocdn.com/s3/m/aaace9b0d05abe23482fb4daa58da0116c171fc5.png)
算法与分析考试题及答案一、选择题(每题2分,共10分)1. 以下哪个选项不是算法的特性?A. 有穷性B. 确定性C. 可行性D. 随机性答案:D2. 在分析算法时间复杂度时,通常使用哪种方法?A. 循环不变式B. 递归树C. 模拟运行D. 动态规划答案:B3. 快速排序算法的平均时间复杂度是?A. O(n)B. O(n log n)C. O(n^2)D. O(2^n)答案:B4. 以下哪个排序算法不是基于比较的排序算法?A. 快速排序B. 归并排序C. 堆排序D. 计数排序答案:D5. 在图的遍历算法中,深度优先搜索(DFS)和广度优先搜索(BFS)的主要区别是什么?A. DFS使用栈,BFS使用队列B. DFS使用队列,BFS使用栈C. DFS和BFS都使用栈D. DFS和BFS都使用队列答案:A二、填空题(每题3分,共15分)1. 算法的时间复杂度通常用大O表示法来描述,其中O表示______。
答案:上界2. 在算法分析中,我们通常忽略常数因子和______。
答案:低阶项3. 动态规划算法的核心思想是______。
答案:分治4. 在图的表示方法中,邻接矩阵适用于表示______图。
答案:稠密5. 哈希表的平均查找时间复杂度是______。
答案:O(1)三、简答题(每题10分,共20分)1. 请简述分治法的基本步骤。
答案:分治法的基本步骤包括分解、解决和合并。
首先将原问题分解成若干个规模较小但结构与原问题相同的子问题;然后递归地解决这些子问题;最后将子问题的解合并成原问题的解。
2. 什么是贪心算法?请举例说明。
答案:贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。
例如,活动选择问题,其中可以选择结束时间最早的活动,以最大化可以安排的活动数量。
四、计算题(每题15分,共30分)1. 给定一个序列{3, 7, 2, 5, 8, 4, 6},请使用快速排序算法对其进行排序,并说明排序过程中的划分操作。
计算机算法设计分析试题及答案
![计算机算法设计分析试题及答案](https://img.taocdn.com/s3/m/fb3e7ed605087632311212a4.png)
算法设计与分析试卷一、填空题(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++)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<bi} ai的非减序排序;将N2中作业依bi的非增序排序min{bπ(i),aπ(i+1)}≥min{bπ(i+1),aπ(i)}最小平均查找长度综合题:20 min{ai+T(N-{i},bi)}(1=<i<=n) thissum+=a[k] besti=i 0 m[i+1][j] t<m[i][j]法一: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} N¹1={1,3,4} N¹2={2} 所以 N¹1→N¹2 得:1→3→4→2简答题:1 、(1)a[1:n]的最大子段和与a[1:n/2]的最大子段和相同。
算法设计与分析(试题A卷)
![算法设计与分析(试题A卷)](https://img.taocdn.com/s3/m/ccfcfa8402d276a200292ed1.png)
四川师范大学成教×××专业×××层次半脱产形式期末考试期末试卷第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、( )是贪心算法与动态规划算法的共同点。
算法设计与分析报告考试题(自测)
![算法设计与分析报告考试题(自测)](https://img.taocdn.com/s3/m/fadf54a3192e45361166f57f.png)
1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_有穷性__,_确定性_,_可行性_,_ (0个或多个)输入__,_ (1个或多个)_输出_。
2.算法的复杂性有__时间复杂性__和__空间复杂性__之分,衡量一个算法好坏的标准是__时间复杂度高低___。
3.某一问题可用动态规划算法求解的显著特征是___该问题具有最优子结构性质___。
4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y的一个最长公共子序列_{A,B,C,D}_。
{BABCD}或{CABCD}或{CADCD}5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含_问题的一个(最优)解_。
6.动态规划算法的基本思想是将待求解问题分解成若干_子问题_,先求解_子问题__,然后从这些_子问题_的解得到原问题的解。
7.以深度优先方式系统搜索问题解的算法称为__回溯法__。
8.0-1背包问题的回溯算法所需的计算时间为__O(n2n)__,用动态规划算法所需的计算时间为_O(n)__。
o(min{nc,2n})9.动态规划算法的两个基本要素是_最优子结构_和_重叠子问题___。
10.二分搜索算法是利用__动态规划法__实现的算法。
二、综合题(50分)1.写出设计动态规划算法的主要步骤。
1、解:(1)找出最优解的性质,并刻画其结构特征;(2)递归地定义最优值;(3)以自底向上的方式计算出最优值;(4)根据计算最优值时得到的信息,构造最优解。
①问题具有最优子结构性质;②构造最优值的递归关系表达式;③最优值的算法描述;④构造最优解2.流水作业调度问题的johnson算法的思想。
2、解:①令N1={i|a i<b i},N2={i|a i>=b i};②将N1中作业按a i的非减序排序得到N1’,将N2中作业按b i的非增序排序得到N2’;③N1’中作业接N2’中作业就构成了满足Johnson法则的最优调度。
算法分析考试题及答案
![算法分析考试题及答案](https://img.taocdn.com/s3/m/346e40b927fff705cc1755270722192e453658e4.png)
算法分析考试题及答案一、选择题(每题2分,共10分)1. 以下哪种算法的时间复杂度为O(n^2)?A. 冒泡排序B. 二分查找C. 快速排序D. 线性搜索答案:A2. 在图论中,下列哪个算法用于寻找最短路径?A. 迪杰斯特拉算法B. 克鲁斯卡尔算法C. 普里姆算法D. 拓扑排序答案:A3. 递归算法的基本特征不包括以下哪一项?A. 递归终止条件B. 递归工作条件C. 循环调用D. 递归方程答案:C4. 动态规划算法与贪心算法的主要区别在于:A. 贪心算法每一步选择局部最优解B. 动态规划算法每一步选择局部最优解C. 动态规划算法需要解决重叠子问题D. 贪心算法需要解决重叠子问题答案:C5. 在数据库索引中,哪种类型的索引可以提高查询效率?A. 哈希索引B. B树索引C. 位图索引D. 以上都是答案:D二、填空题(每题3分,共15分)1. 算法的时间复杂度是指算法执行过程中所需基本操作的______与输入数据量之间的关系。
答案:数量2. 在排序算法中,______排序是一种稳定的排序算法。
答案:归并3. 算法的空间复杂度是指算法执行过程中所需的______量。
答案:存储4. 在图的遍历中,深度优先搜索(DFS)使用的栈是______。
答案:非必需的5. 快速排序算法中,基准元素的选择可以是______。
答案:任意元素三、简答题(每题10分,共20分)1. 请简述算法复杂度分析中,最好情况、最坏情况和平均情况的定义。
答案:最好情况是指算法在处理特定输入时能达到的最优性能,即算法执行步骤最少的情况。
最坏情况是指算法在处理特定输入时能达到的最差性能,即算法执行步骤最多的情况。
平均情况是指算法在处理所有可能输入的平均性能,通常通过统计所有输入情况的性能来计算。
2. 描述动态规划算法解决问题的一般步骤。
答案:动态规划算法解决问题的一般步骤包括:1) 定义问题的递归解法;2) 识别并解决重叠子问题;3) 存储子问题的解以避免重复计算;4) 从基本情况开始,逐步构建问题的解;5) 利用存储的子问题解来构建原问题的解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_有穷性__,_确定性_,_可行性_,_ (0个或多个)输入__,_ (1个或多个)_输出_。
2.算法的复杂性有__时间复杂性__和__空间复杂性__之分,衡量一个算法好坏的标准是__时间复杂度高低___。
3.某一问题可用动态规划算法求解的显著特征是___该问题具有最优子结构性质___。
4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y的一个最长公共子序列_{A,B,C,D}_。
{BABCD}或{CABCD}或{CADCD}5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含_问题的一个(最优)解_。
6.动态规划算法的基本思想是将待求解问题分解成若干_子问题_,先求解_子问题__,然后从这些_子问题_的解得到原问题的解。
7.以深度优先方式系统搜索问题解的算法称为__回溯法__。
8.0-1背包问题的回溯算法所需的计算时间为__O(n2n)__,用动态规划算法所需的计算时间为_O(n)__。
o(min{nc,2n})9.动态规划算法的两个基本要素是_最优子结构_和_重叠子问题___。
10.二分搜索算法是利用__动态规划法__实现的算法。
二、综合题(50分)1.写出设计动态规划算法的主要步骤。
1、解:(1)找出最优解的性质,并刻画其结构特征;(2)递归地定义最优值;(3)以自底向上的方式计算出最优值;(4)根据计算最优值时得到的信息,构造最优解。
①问题具有最优子结构性质;②构造最优值的递归关系表达式;③最优值的算法描述;④构造最优解2.流水作业调度问题的johnson算法的思想。
2、解:①令N1={i|a i<b i},N2={i|a i>=b i};②将N1中作业按a i 的非减序排序得到N1’,将N2中作业按b i的非增序排序得到N2’;③N1’中作业接N2’中作业就构成了满足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个作业的最优调度方案,并计算最优值。
3、解:步骤为:N1={1,3},N2={2,4};N1’={1,3}, N2’={4,2};最优值为:384.使用回溯法解0/1背包问题:n=3(3种物品),C=9(背包的容量为9),V={6,10,3}(3种物品的价值分别为6,10,3),W={3,4,4}(3种物品的重量分别为3,4,4),其解空间有长度为3的0-1向量组成,要求用一棵完全二叉树表示其解空间(从根出发,左1右0),并画出其解空间树,计算其最优值及最优解。
4、解:其解空间为:{(0,0,0),(0,1,0),(0,0,1),(1,0,0),(0,1,1),(1,0,1),(1,1,0),(1,1,1)}解空间树为:该问题的最优值为:16=6+10 最优解为:(1,1,0)5.设S={X1,X2,···,X n}是严格递增的有序集,利用二叉树的结点来存储S中的元素,在表示S的二叉搜索树中搜索一个元素X,返回的结果有两种情形,(1)在二叉搜索树的内结点中找到X=X i,其概率为b i。
(2)在二叉搜索树的叶结点中确定X∈(X i,X i+1),其概率为a i。
在表示S的二叉搜索树T中,设存储元素X i的结点深度为C i;叶结点(X i,X i+1)的结点深度为d i,则二叉搜索树T的平均路长p为多少?假设二叉搜索树T[i][j]={X i,X i+1,···,X j}最优值为m[i][j],W[i][j]= a i-1+b i+···+b j+a j,则m[i][j](1<=i<=j<=n)递归关系表达式为什么?5、解:二叉树T的平均路长P=∑=+ni1Ci)(1*bi+∑=nj0dj*aj{m[i][j]=0 (i>j)6.描述0-1背包问题。
6、解:已知一个背包的容量为C,有n件物品,物品i的重量为W i,价值为V i,求应如何选择装入背包中的物品,使得装入背包中物品的总价值最大。
三、简答题(30分)1.流水作业调度中,已知有n个作业,机器M1和M2上加工作业i所需的时间分别为a i和b i,请写出流水作业调度问题的johnson法则中对a i和b i的排序算法。
(函数名可写为sort(s,n))2.最优二叉搜索树问题的动态规划算法(设函数名binarysearchtree))m[i][j]=W[i][j]+min{m[i][k]+m[k+1][j]} (1<=i<=j<=n,m[i][i-1]=0)答案:一、填空1.确定性有穷性可行性 0个或多个输入一个或多个输出2.时间复杂性空间复杂性时间复杂度高低3. 该问题具有最优子结构性质4.{BABCD}或{CABCD}或{CADCD}5.一个(最优)解6.子问题子问题子问题7.回溯法8. o(n*2n) o(min{nc,2n})9.最优子结构重叠子问题10.动态规划法二、综合题1.①问题具有最优子结构性质;②构造最优值的递归关系表达式;③最优值的算法描述;④构造最优解;2. ①令N1={i|a i<b i},N2={i|a i>=b i};②将N1中作业按a i的非减序排序得到N1’,将N2中作业按b i的非增序排序得到N2’;③N1’中作业接N2’中作业就构成了满足Johnson法则的最优调度。
3.步骤为:N1={1,3},N2={2,4};N1’={1,3}, N2’={4,2};最优值为:384.解空间为{(0,0,0),(0,1,0),(0,0,1),(1,0,0),(0,1,1),(1,0,1), (1,1,0),(1,1,1)}。
解空间树为:该问题的最优值为:16 最优解为:(1,1,0) 5.二叉树T 的平均路长P=∑=+ni 1Ci)(1*bi +∑=nj 0dj *aj{m[i][j]=0 (i>j)6.已知一个背包的容量为C ,有n 件物品,物品i 的重量为W i ,价值为V i ,求应如何选择装入背包中的物品,使得装入背包中物品的总价值最大。
三、简答题1.void sort(flowjope s[],int n)m[i][j]=W[i][j]+min{m[i][k]+m[k+1][j]} (1<=i<=j<=n,m[i][i-1]=0){int i,k,j,l;for(i=1;i<=n-1;i++)//-----选择排序{k=i;while(k<=n&&s[k].tag!=0) k++;if(k>n) break;//-----没有a i,跳出else{for(j=k+1;j<=n;j++)if(s[j].tag==0)if(s[k].a>s[j].a) k=j;swap(s[i].index,s[k].index);swap(s[i].tag,s[k].tag); }}l=i;//-----记下当前第一个b i的下标for(i=l;i<=n-1;i++){k=i;for(j=k+1;j<=n;j++)if(s[k].b<s[j].b) k=j;swap(s[i].index,s[k].index); //-----只移动index和tagswap(s[i].tag,s[k].tag); }}2.void binarysearchtree(int a[],int b[],int n,int **m,int **s,int **w) {int i,j,k,t,l;for(i=1;i<=n+1;i++){ w[i][i-1]=a[i-1];m[i][i-1]=0;}for(l=0;l<=n-1;l++)//----l是下标j-i的差for(i=1;i<=n-l;i++){ j=i+l;w[i][j]=w[i][j-1]+a[j]+b[j];m[i][j]=m[i][i-1]+m[i+1][j]+w[i][j];s[i][j]=i;for(k=i+1;k<=j;k++){ t=m[i][k-1]+m[k+1][j]+w[i][j];if(t<m[i][j]){ m[i][j]=t;s[i][j]=k;}}}}一、填空题(本题15分,每小题1分)1、算法就是一组有穷的程序规则,它们规定了解决某一特定类型问题的方法和过程一系列运算。
2、在进行问题的计算复杂性分析之前,首先必须建立求解问题所用的计算模型。
3个基本计算模型是顺序结构随机存取机RAM、循环结构随机存取存储程序机RASP、条件结构图灵机TM。
3、算法的复杂性是时间资源和空间资源算法效率的度量,是评价算法优劣的重要依据。
4、计算机的资源最重要的是时间和空间资源。
因而,算法的复杂性有时间复杂性和空间复杂性之分。
5、f(n)= 6×2n+n2,f(n)的渐进性态f(n)= O( 2n )6、贪心算法总是做出在当前看来最优的选择。
也就是说贪心算法并不从整体最优考虑,它所做出的选择只是在某种意义上的局部最优选择。
7、许多可以用贪心算法求解的问题一般具有2个重要的性质:最优子结构性质和贪心选择性质。
二、简答题(本题25分,每小题5分)1、简单描述分治法的基本思想。
1、答:分治法的基本思想是将一个规模为n 的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同。
递归地解这些子问题,然后将个子问题的解合并得到原问题的解。
2、简述动态规划方法所运用的最优化原理。
2、答:在动态规划中,不管子问题以后是否被用到,只要它被计算过,就将其结果填入表中。
3、何谓最优子结构性质?3、答:当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。
问题的最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征。
4、简单描述回溯法基本思想。
4、答:回溯法是一个既带有系统性又带有跳跃性的搜索算法,用其解决问题时,应明确定义问题的解空间。
确定解空间的组织结构后,回溯法从开始结点(根结点)出发,以深度优先方式搜索整个解空间。
这个开始结点成为活结点,同时也成为当前的扩展结点。
在当前扩展结点处,搜索向纵深方向移至一个新结点。
这个新结点成为新的活结点,并成为当前的扩展结点。
如果在当前扩展结点处不能在向纵深方向移动,则当前扩展结点就成为死结点。