《计算机算法设计与分析》习题及答案.doc

上传人:h**** 文档编号:774504 上传时间:2018-10-31 格式:DOC 页数:10 大小:98KB
下载 相关 举报
《计算机算法设计与分析》习题及答案.doc_第1页
第1页 / 共10页
《计算机算法设计与分析》习题及答案.doc_第2页
第2页 / 共10页
《计算机算法设计与分析》习题及答案.doc_第3页
第3页 / 共10页
《计算机算法设计与分析》习题及答案.doc_第4页
第4页 / 共10页
《计算机算法设计与分析》习题及答案.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、1计算机算法设计与分析习题及答案一选择题1、二分搜索算法是利用( A )实现的算法。A、分治策略 B、动态规划法 C、贪心法 D、回溯法2、下列不是动态规划算法基本步骤的是( A ) 。A、找出最优解的性质 B、构造最优解 C、算出最优解 D、定义最优解3、最大效益优先是( A )的一搜索方式。A、分支界限法 B、动态规划法 C、贪心法 D、回溯法4. 回溯法解旅行售货员问题时的解空间树是( A ) 。A、子集树 B、排列树 C、深度优先生成树 D、广度优先生成树5下列算法中通常以自底向上的方式求解最优解的是( B ) 。A、备忘录法 B、动态规划法 C、贪心法 D、回溯法6、衡量一个算法好坏

2、的标准是( C ) 。A 运行速度快 B 占用空间少 C 时间复杂度低 D 代码短7、以下不可以使用分治法求解的是( D ) 。A 棋盘覆盖问题 B 选择问题 C 归并排序 D 0/1 背包问题8. 实现循环赛日程表利用的算法是( A ) 。A、分治策略 B、动态规划法 C、贪心法 D、回溯法9下面不是分支界限法搜索方式的是( D ) 。A、广度优先 B、最小耗费优先 C、最大效益优先 D、深度优先10下列算法中通常以深度优先方式系统搜索问题解的是( D ) 。A、备忘录法 B、动态规划法 C、贪心法 D、回溯法11.备忘录方法是那种算法的变形。 ( B )A、分治法 B、动态规划法 C、贪心

3、法 D、回溯法12哈夫曼编码的贪心算法所需的计算时间为( B ) 。A、O(n2 n) B、O(nlogn) C、O(2 n) D、O(n)13分支限界法解最大团问题时,活结点表的组织形式是( B ) 。A、最小堆 B、最大堆 C、栈 D、数组14最长公共子序列算法利用的算法是( B ) 。A、分支界限法 B、动态规划法 C、贪心法 D、回溯法15实现棋盘覆盖算法利用的算法是( A ) 。A、分治法 B、动态规划法 C、贪心法 D、回溯法16.下面是贪心算法的基本要素的是( C ) 。A、重叠子问题 B、构造最优解 C、贪心选择性质 D、定义最优解17.回溯法的效率不依赖于下列哪些因素( D

4、)A.满足显约束的值的个数 B. 计算约束函数的时间 C.计算限界函数的时间 D. 确定解空间的时间18.下面哪种函数是回溯法中为避免无效搜索采取的策略( B )A递归函数 B.剪枝函数 C。随机数函数 D.搜索函数19. ( D )是贪心算法与动态规划算法的共同点。2A、重叠子问题 B、构造最优解 C、贪心选择性质 D、最优子结构性质20. 矩阵连乘问题的算法可由( B )设计实现。A、分支界限算法 B、动态规划算法 C、贪心算法 D、回溯算法21. 分支限界法解旅行售货员问题时,活结点表的组织形式是( A ) 。A、最小堆 B、最大堆 C、栈 D、数组22、Strassen 矩阵乘法是利用

5、( A )实现的算法。A、分治策略 B、动态规划法 C、贪心法 D、回溯法23、使用分治法求解不需要满足的条件是( A ) 。A 子问题必须是一样的 B 子问题不能够重复C 子问题的解可以合并 D 原问题和子问题使用相同的方法解24、下面问题( B )不能使用贪心法解决。A 单源最短路径问题 B N 皇后问题 C 最小生成树问题 D 背包问题25、下列算法中不能解决 0/1 背包问题的是( A )A 贪心法 B 动态规划 C 回溯法 D 分支限界法26、回溯法搜索状态空间树是按照( C )的顺序。A 中序遍历 B 广度优先遍历 C 深度优先遍历 D 层次优先遍历27实现合并排序利用的算法是(

6、A ) 。A、分治策略 B、动态规划法 C、贪心法 D、回溯法28下列是动态规划算法基本要素的是( D ) 。A、定义最优解 B、构造最优解 C、算出最优解 D、子问题重叠性质29下列算法中通常以自底向下的方式求解最优解的是( B ) 。A、分治法 B、动态规划法 C、贪心法 D、回溯法30采用广度优先策略搜索的算法是( A ) 。A、分支界限法 B、动态规划法 C、贪心法 D、回溯法31、合并排序算法是利用( A )实现的算法。A、分治策略 B、动态规划法 C、贪心法 D、回溯法32、背包问题的贪心算法所需的计算时间为( B )A、O(n2 n) B、O(nlogn) C、O(2 n) D、

7、O(n)33实现大整数的乘法是利用的算法( C ) 。A、贪心法 B、动态规划法 C、分治策略 D、回溯法340-1 背包问题的回溯算法所需的计算时间为( A )A、O(n2 n) B、O(nlogn) C、O(2n) D、O(n)35采用最大效益优先搜索方式的算法是( A ) 。A、分支界限法 B、动态规划法 C、贪心法 D、回溯法36贪心算法与动态规划算法的主要区别是( B ) 。A、最优子结构 B、贪心选择性质 C、构造最优解 D、定义最优解37. 实现最大子段和利用的算法是( B ) 。A、分治策略 B、动态规划法 C、贪心法 D、回溯法38.优先队列式分支限界法选取扩展结点的原则是(

8、 C ) 。A、先进先出 B、后进先出 C、结点的优先级 D、随机39.背包问题的贪心算法所需的计算时间为( B ) 。A、O(n2 n) B、O(nlogn) C、O(2 n) D、O(n)40、广度优先是( A )的一搜索方式。A、分支界限法 B、动态规划法 C、贪心法 D、回溯法341. 一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B ) 。A、重叠子问题 B、最优子结构性质 C、贪心选择性质 D、定义最优解42采用贪心算法的最优装载问题的主要计算量在于将集装箱依其重量从小到大排序,故算法的时间复杂度为 ( B ) 。A、O(n2 n) B、O(nlogn) C、O(2

9、n) D、O(n)43. 以深度优先方式系统搜索问题解的算法称为 ( D ) 。A、分支界限算法 B、概率算法 C、贪心算法 D、回溯算法44. 实现最长公共子序列利用的算法是( B ) 。A、分治策略 B、动态规划法 C、贪心法 D、回溯法45. Hanoi 塔 问题如下图所示。现要求将塔座 A 上的的所有圆盘移到塔座 B 上,并仍按同样顺序叠置。移动圆盘时遵守 Hanoi 塔问题的移动规则。由此设计出解 Hanoi 塔问题的递归算法正确的为:(B)46. 动态规划算法的基本要素为( C )A. 最优子结构性质与贪心选择性质 B重叠子问题性质与贪心选择性质C最优子结构性质与重叠子问题性质 D

10、. 预排序与递归调用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

11、,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);447. 能采用贪心算法求最优解的问题,一般具有的重要性质为:( A )A. 最优子结构性质与贪心选择性质 B重叠子问题性质与贪心选择性质C最优子结构性质与重叠子问题性质 D. 预排序与递归调用48. 回溯法在问题的解空间树中,按( D )策略,从根结点出发搜索解空间树。A.广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先49. 分

12、支限界法在问题的解空间树中,按( A )策略,从根结点出发搜索解空间树。A.广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先50. 程序块( A )是回溯法中遍历排列树的算法框架程序。A.B. C.D.void backtrack (int t) if (tn) output(x);elsefor (int i=t;in) output(x);elsefor (int i=0;in) output(x);elsefor (int i=0;in) output(x);elsefor (int i=t;ic) break;xi=1;c-=wi;if (i0) b+= aj ;else

13、b=ai; ; /一旦某个区段和为负,则从下一个位置累和if(bsum) sum=b;return sum;7 3.贪心算法求活动安排问题templatevoid GreedySelector(int n, Type s, Type f, bool A)A1=true;int j=1;for (int i=2;i=fj) Ai=true; j=i;else Ai=false;4.快速排序templatevoid QuickSort (Type a, int p, int r)if (p int BinarySearch(Type a, const Type int right=n-1; Whi

14、le (leftamiddle) left=middle+1;else right=middle-1; Return -1; 时间复杂性为 O(logn)2. 利用分治算法写出合并排序的算法,并分析其时间复杂度void MergeSort(Type a, int left, int right) if (leftn) sum+;else for (int i=1;i n) / 到达叶结点for (int j = 1; j bestn) / 进入右子树xi = 0;Backtrack(i+1); 5. 顺序表存储表示如下:typedef structRedType rMAXSIZE+1; /顺序

15、表int length; /顺序表长度SqList;编写对顺序表 L 进行快速排序的算法。int Partition(SqList L.r0=L.rlow; /用子表的第一个记录作枢轴记录pivotkey=L.rlow.key; /枢轴记录关键字while (low=pivotkey) -high;L.rlow=L.rhigh; /将比枢轴记录小的记录移到低端while (low110pivotloc=Partition(L,low,high); /将 L.rlow.high一分为二QSort(L,low,pivotloc-1); /对低子表递归排序,pivotloc 是枢轴位置QSort(L,pivotloc+1,high); /对高子表递归排序void QuickSort(SqList

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。