2022年太原理工大学软件学院算法设计与分析复习题目及答案 .pdf
《2022年太原理工大学软件学院算法设计与分析复习题目及答案 .pdf》由会员分享,可在线阅读,更多相关《2022年太原理工大学软件学院算法设计与分析复习题目及答案 .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、选择题1、二分搜索算法是利用(A )实现的算法。A、分治策略 B、动态规划法 C、贪心法 D、回溯法2、下列不是动态规划算法基本步骤的是(A ) 。A、找出最优解的性质B、构造最优解 C、算出最优解 D、定义最优解3、最大效益优先是(A )的搜索方式。A、分支界限法 B、动态规划法 C、贪心法 D、回溯法4. 回溯法解旅行售货员问题时的解空间树是( B ) 。A、子集树B、排列树C、深度优先生成树D、广度优先生成树5下列算法中通常以自底向上的方式求解最优解的是(B ) 。A、备忘录法 B、动态规划法C、贪心法D、回溯法6、衡量一个算法好坏的标准是(C ) 。A 运行速度快 B 占用空间少
2、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、贪心法D、回溯法12最长公共子序列算法利用的算法是(B ) 。A、分支界限法B、动态规
3、划法C、贪心法D、回溯法13实现棋盘覆盖算法利用的算法是(A ) 。A、分治法B、动态规划法C、贪心法D、回溯法14. 下面是贪心算法的基本要素的是(C ) 。A、重叠子问题B、构造最优解C、贪心选择性质D 、定义最优解精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 18 页15. 回溯法的效率不依赖于下列哪些因素( D )A. 满足显约束的值的个数 B. 计算约束函数的时间C. 计算限界函数的时间 D. 确定解空间的时间16. 下面哪种函数是回溯法中为避免无效搜索采取的策略(B )A递归函数B.剪枝函数 C. 随机数函数 D. 搜索函
4、数17. (D )是贪心算法与动态规划算法的共同点。A、重叠子问题 B、构造最优解 C、贪心选择性质 D 、最优子结构性质18. 矩阵连乘问题的算法可由(B)设计实现。A、分支界限算法B、动态规划算法C 、贪心算法 D、回溯算法19. 分支限界法解旅行售货员问题时,活结点表的组织形式是(A ) 。A、最小堆B、最大堆C 、栈D 、数组20、Strassen 矩阵乘法是利用(A )实现的算法。A、分治策略 B、动态规划法 C、贪心法 D、回溯法21、使用分治法求解不需要满足的条件是(A ) 。A 子问题必须是一样的B 子问题不能够重复C 子问题的解可以合并D 原问题和子问题使用相同的方法解22、
5、下面问题( B )不能使用贪心法解决。A 单源最短路径问题B N皇后问题C 最小花费生成树问题 D 背包问题23、下列算法中不能解决0/1 背包问题的是( A )A 贪心法 B 动态规划 C 回溯法 D 分支限界法24、回溯法搜索状态空间树是按照(C )的顺序。A 中序遍历 B 广度优先遍历 C 深度优先遍历 D 层次优先遍历25实现合并排序利用的算法是(A ) 。A、分治策略B、动态规划法C、贪心法D、回溯法26下列是动态规划算法基本要素的是(D ) 。A、定义最优解B、构造最优解C、算出最优解D 、子问题重叠性质精选学习资料 - - - - - - - - - 名师归纳总结 - - - -
6、 - - -第 2 页,共 18 页27下列算法中通常以自底向下的方式求解最优解的是(B ) 。A、分治法B、动态规划法 C、贪心法D 、回溯法28采用广度优先策略搜索的算法是(A ) 。A、分支界限法 B、动态规划法 C、贪心法D、回溯法29、合并排序算法是利用( A )实现的算法。A、分治策略 B、动态规划法 C、贪心法 D、回溯法30、背包问题的贪心算法所需的计算时间为(B )A、O (n2n) B、O (nlogn ) C、O (2n)D、O (n)31实现大整数的乘法是利用的算法(C ) 。A、贪心法B、动态规划法C、分治策略D 、回溯法320-1 背包问题的回溯算法所需的计算时间为
7、(A )A、O (n2n)B、O (nlogn )C 、O (2n)D、O (n)33采用最大效益优先搜索方式的算法是(A ) 。A、分支界限法 B、动态规划法 C、贪心法D、回溯法34贪心算法与动态规划算法的主要区别是(B ) 。A、最优子结构B、贪心选择性质C 、构造最优解D、定义最优解35. 优先队列式分支限界法选取扩展结点的原则是(C ) 。A、先进先出B、后进先出C 、结点的优先级D、随机36. 背包问题的贪心算法所需的计算时间为(B ) 。A、O (n2n)B、O (nlogn )C 、O (2n)D、O (n)37、广度优先是(A )的搜索方式。A、分支界限法 B、动态规划法C、
8、贪心法 D、回溯法38. 一个问题可用动态规划算法或贪心算法求解的关键特征是问题的(B ) 。A、重叠子问题B、最优子结构性质C 、贪心选择性质D、定义最优解39 采用贪心算法的最优装载问题的主要计算量在于将集装箱依其重量从小到大排序,故算法的时间复杂度为 (B ) 。A、O (n2n)B、O (nlogn )C 、O (2n) D、O (n)40. 以深度优先方式系统搜索问题解的算法称为( D ) 。A、分支界限算法 B、概率算法C、贪心算法 D、回溯算法精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 18 页41. 实现最长公共子序
9、列利用的算法是(B ) 。A、分治策略 B、动态规划法C 、贪心法D 、回溯法42、算法是由若干条指令组成的有穷序列,而且满足以下性质(D)(1) 输入:有 0 个或多个输入(2) 输出:至少有一个输出(3) 确定性:指令清晰,无歧义(4) 有限性:指令执行次数有限,而且执行时间有限A (1)(2)(3) B(1)(2)(4) C(1)(3)(4) D (1) (2)(3)(4) 43、函数 32n+10nlogn的渐进表达式是 ( B ). A. 2nB. 32nC. nlognD. 10nlogn44、大整数乘法算法是 ( A ).算法A.分治 B.贪心 C.动态规划D.穷举45、解决活动
10、安排问题,最好用(B )算法A.分治 B.贪心 C.动态规划D.穷举46、设 f(N),g(N) 是定义在正数集上的正函数,如果存在正的常数C 和自然数 N0,使得当 N N0时有 f(N) Cg(N),则称函数 f(N) 当 N 充分大时有下界g(N),记作f(N) (g(N),即 f(N)的阶( A )g(N)的阶. A.不高于 B.不低于 C.等价于 D.逼近47、回溯法在解空间树T 上的搜索方式是 ( A ). A.深度优先B.广度优先C.最小耗费优先D.活结点优先48、回溯算法和分支限界法的问题的解空间树不会是(D). A.有序树 B.子集树 C.排列树 D.无序树49、在对问题的解
11、空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是 ( B ). A.回溯法 B.分支限界法 C.回溯法和分支限界法D.回溯法求解子集树问题50、从活结点表中选择下一个扩展结点的不同方式将导致不同的分支限界法,以下除( C )之外都是最常见的方式 . A.队列式分支限界法B.优先队列式分支限界法C.栈式分支限界法D.FIFO 分支限界法精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 18 页二、 填空题1. 算法的复杂性有时间复杂性和空间复杂性之分。2、程序是算法用某种程序设计语言的具体实现。3、算法的“确定性”指的是组成算
12、法的每条指令是清晰的,无歧义的。4. 矩阵连乘问题的算法可由动态规划设计实现。5、算法是指解决问题的一种方法或一个过程。6、从分治法的一般设计模式可以看出,用它设计出的程序一般是递归算法。7、问题的最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征。8、以深度优先方式系统搜索问题解的算法称为回溯法。9、计算一个算法时间复杂度通常可以计算循环次数、基本操作的频率或计算步。10、解决 0/1 背包问题可以使用动态规划、回溯法和分支限界法, 其中不需要排序的是动态规划,需要排序的是回溯法,分支限界法。11、使用回溯法进行状态空间树裁剪分支时一般有两个标准:约束条件和目标函数的界,N皇后问
13、题和 0/1 背包问题正好是两种不同的类型,其中同时使用约束条件和目标函数的界进行裁剪的是 0/1背包问题,只使用约束条件进行裁剪的是 N皇后问题。12、贪心选择性质是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。13、矩阵连乘问题的算法可由动态规划设计实现。14. 贪心算法的基本要素是贪心选择性质和最优子结构性质 。15. 动态规划算法的基本思想是将待求解问题分解成若干子问题,先求解子问题,然后从这些子问题的解得到原问题的解。16. 算法是由若干条指令组成的有穷序列,且要满足输入、输出、确定性和有限性四条性质。17、大整数乘积算法是用分治法来设计的。18、以广度优先或以
14、最小耗费方式搜索问题解的算法称为分支限界法。19、贪心选择性质是贪心算法可行的第一个基本要素,也是贪心算法与动态精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 18 页规划算法的主要区别。20. 快速排序算法是基于分治策略的一种排序算法。21. 动 态 规 划 算 法 的 两 个 基 本 要 素 是 最 优 子 结 构 性 质 和 重 叠 子 问 题性质 。22. 回溯法是一种既带有系统性又带有跳跃性的搜索算法。23. 分支限界法主要有队列式(FIFO)分支限界法和优先队列式分支限界法。24分支限界法是一种既带有系统性又带有跳跃性的搜索
15、算法。25回溯法搜索解空间树时,常用的两种剪枝函数为约束函数和限界函数。26. 任何可用计算机求解的问题所需的时间都与其规模有关。27. 快速排序算法的性能取决于划分的对称性。28. Prim 算法利用贪心策略求解最小生成树问题,其时间复杂度是O(n2)。29. 图的 m 着色问题可用回溯法求解,其解空间树中叶子结点个数是mn,解空间树中每个内结点的孩子数是m。三、算法的程序填空1. 背包问题的贪心算法void Knapsack(int n,float M,float v,float w,float x) Sort(n,v,w); int i; for (i=1;i=n;i+) xi=0; f
16、loat c=M; for (i=1;ic) break; xi=1; c - =wi; if (i=n) xi=c/wi; 2. 最大子段和 : 动态规划算法精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 18 页int MaxSum(int n, int a) int sum=0, b=0; /sum存储当前最大的bj, b存储 bj for(int j=1; j0) b+= aj ; else b=ai; ; /一旦某个区段和为负, 则从下一个位置累和 if(bsum) sum=b; return sum; 3. 快速排序temp
17、late void QuickSort (Type a, int p, int r) if (pr) int q=Partition(a,p,r); QuickSort (a,p,q-1); /对左半段排序 QuickSort (a,q+1,r); /对右半段排序 4. 排列问题Template void perm(Type list, int k, int m ) /产生listk:m的所有排列 if(k=m) /只剩下一个元素 for (int i=0;i=m;i+) coutlisti; coutendl; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - -
18、- - -第 7 页,共 18 页 else /还有多个元素待排列,递归产生排列 for (int i=k; i=m; i+) swap(listk,listi); perm(list,k+1;m); swap(listk,listi); 5. 给定已按升序排好序的n 个元素 a0:n-1,现要在这 n 个元素中找出一特定元素 x。据此容易设计出二分搜索算法:template int BinarySearch(Type a, const Type& x, int l, int r) while (l=r ) int m = (l+r)/2); if (x = am) return m; if
19、(x am ) r = m-1; else l = m+1; return -1; 6、合并排序描述如下:template void Mergesort(Type a , int left, int right) if (leftright) int i=( left+right)/2; Mergesort(a, left, i ); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 18 页Mergesort(a, i+1, right ); Merge(a,b, left,i,right);/合并到数组 b Copy(a,b, lef
20、t,right ); /复制到数组 a 7、分治法求最大、最小元template void SortableList:MaxMin(int i, int j, T& max, T& min) const / 前置条件: i 和 j,0ij表长,是表的下标范围的界T min1, max1; if (i=j) max=min=li; /表中只有一个元素时else if (i=j-1) /表中有两个元素时if (lilj) max=lj; min=li; else max=li; min=lj; else /表中多于两个元素时int m=(i+j)/2; /对半分割MaxMin(i, m, max,
21、 min); /求前半部子表中的最大、最小元MaxMin(m+1, j, max1, min1) / 求后半部子表中的最大、最小元if (maxmin1) min=min1; /两子表最小元的小者为原表最小元 四、问答题1.用计算机求解问题的步骤:1、问题分析 2、数学模型建立 3、算法设计与选择 4、算法指标 5、算法分析6、算法实现 7、程序调试 8、结果整理文档编制精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 18 页2. 算法定义:算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程3.算法的三要素 (1)操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年太原理工大学软件学院算法设计与分析复习题目及答案 2022 太原 理工大学 软件 学院 算法 设计 分析 复习 题目 答案
限制150内