算法分析复习题目及答案(共6页).doc

上传人:飞****2 文档编号:14504723 上传时间:2022-05-04 格式:DOC 页数:6 大小:26KB
返回 下载 相关 举报
算法分析复习题目及答案(共6页).doc_第1页
第1页 / 共6页
算法分析复习题目及答案(共6页).doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《算法分析复习题目及答案(共6页).doc》由会员分享,可在线阅读,更多相关《算法分析复习题目及答案(共6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上一。选择题1、二分搜索算法是利用(A )实现的算法。A、分治策略 B、动态规划法 C、贪心法 D、回溯法2、下列不是动态规划算法基本步骤的是(A )。A、找出最优解的性质 B、构造最优解 C、算出最优解 D、定义最优解7、衡量一个算法好坏的标准是(C )。A 运行速度快 B 占用空间少 C 时间复杂度低 D 代码短8、以下不可以使用分治法求解的是(D )。A 棋盘覆盖问题 B 选择问题 C 归并排序 D 0/1背包问题14哈弗曼编码的贪心算法所需的计算时间为(B )。A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)18.下面是贪心算法的基本要素的是(C

2、)。A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解24. (D )是贪心算法与动态规划算法的共同点。A、重叠子问题B、构造最优解C、贪心选择性质D、最优子结构性质25. 矩阵连乘问题的算法可由(B)设计实现。A、分支界限算法 B、动态规划算法 C、贪心算法 D、回溯算法27、Strassen矩阵乘法是利用(A )实现的算法。A、分治策略 B、动态规划法 C、贪心法 D、回溯法29、使用分治法求解不需要满足的条件是(A )。A 子问题必须是一样的B 子问题不能够重复C 子问题的解可以合并D 原问题和子问题使用相同的方法解30、下面问题(B )不能使用贪心法解决。A 单源最短路径问题

3、B N皇后问题 C 最小花费生成树问题 D 背包问题31、下列算法中不能解决0/1背包问题的是(A )A 贪心法 B 动态规划 C 回溯法 D 分支限界法34实现合并排序利用的算法是(A )。A、分治策略B、动态规划法C、贪心法D、回溯法35下列是动态规划算法基本要素的是(D )。A、定义最优解B、构造最优解C、算出最优解D、子问题重叠性质36下列算法中通常以自底向下的方式求解最优解的是(B )。A、分治法B、动态规划法C、贪心法D、回溯法38、合并排序算法是利用(A )实现的算法。A、分治策略 B、动态规划法 C、贪心法 D、回溯法40、背包问题的贪心算法所需的计算时间为(B )A、O(n2

4、n) B、O(nlogn) C、O(2n) D、O(n)41实现大整数的乘法是利用的算法(C )。A、贪心法B、动态规划法C、分治策略D、回溯法44贪心算法与动态规划算法的主要区别是(B )。A、最优子结构B、贪心选择性质C、构造最优解D、定义最优解47.背包问题的贪心算法所需的计算时间为(B )。A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)52. 一个问题可用动态规划算法或贪心算法求解的关键特征是问题的(B )。A、重叠子问题B、最优子结构性质C、贪心选择性质D、定义最优解53采用贪心算法的最优装载问题的主要计算量在于将集装箱依其重量从小到大排序,故算法的时间复杂度为 (

5、B ) 。A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)55. 实现最长公共子序列利用的算法是(B )。A、分治策略B、动态规划法C、贪心法D、回溯法二、 填空题 1.算法的复杂性有 时间 复杂性和 空间 复杂性之分。2、程序是 算法用某种程序设计语言的具体实现。3、算法的“确定性”指的是组成算法的每条 指令 是清晰的,无歧义的。4.矩阵连乘问题的算法可由 动态规划 设计实现。7、从分治法的一般设计模式可以看出,用它设计出的程序一般是 递归算法 。8、问题的 最优子结构性质 是该问题可用动态规划算法或贪心算法求解的关键特征。11、计算一个算法时间复杂度通常可以计算 循环次数 、

6、 基本操作的频率 或计算步。16、 贪心选择性质 是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。17、矩阵连乘问题的算法可由 动态规划 设计实现。19.贪心算法的基本要素是 贪心选择 质和 最优子结构 性质 。21. 动态规划算法的基本思想是将待求解问题分解成若干 子问题 ,先求解 子问题 ,然后从这些 子问题 的解得到原问题的解。22.算法是由若干条指令组成的有穷序列,且要满足输入、 输出 、确定性和 有限性 四条性质。23、大整数乘积算法是用 分治法 来设计的。26、 贪心选择性质 是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。27.快速排序

7、算法是基于 分治策略 的一种排序算法。28.动态规划算法的两个基本要素是. 最优子结构 性质和 重叠子问题 性质 。34.任何可用计算机求解的问题所需的时间都与其 规模 有关。35.快速排序算法的性能取决于 划分的对称性 。三、算法填空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; float c=M; for (i=1;ic) break; xi=1; c - =wi; if (i=n) xi=c/wi;4.贪心算法求活动安排问

8、题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; 5.快速排序templatevoid 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); /对右半段排序 Partition()四、问答题1.分治法的基本思想时将一个规模

9、为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归地解这些子问题,然后将各个子问题的解合并得到原问题的解。2设计动态规划算法的主要步骤为:(1)找出最优解的性质,并刻划其结构特征。(2)递归地定义最优值。(3)以自底向上的方式计算出最优值。(4)根据计算最优值时得到的信息,构造最优解。3. 分治法与动态规划法的相同点是:将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。两者的不同点是:适合于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的。而用分治法求解的问题,经分解得到的子问题往往是互相独立的。6. 分治法所能解决的问题

10、一般具有的几个特征是:(1)该问题的规模缩小到一定的程度就可以容易地解决; (2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质; (3)利用该问题分解出的子问题的解可以合并为该问题的解; (4)原问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。五、算法题*1. 给定已按升序排好序的n个元素a0:n-1,现要在这n个元素中找出一特定元素x,返回其在数组中的位置,如果未找到返回-1。写出二分搜索的算法,并分析其时间复杂度。1. template int BinarySearch(Type a, const Type& x, int n)/在a0:n中搜

11、索x,找到x时返回其在数组中的位置,否则返回-1 Int left=0; int right=n-1; While (leftamiddle) left=middle+1; else right=middle-1; Return -1; 时间复杂性为O(logn)2. 利用分治算法写出合并排序的算法,并分析其时间复杂度1. void MergeSort(Type a, int left, int right) if (leftright) /至少有2个元素 int i=(left+right)/2; /取中点 mergeSort(a, left, i); mergeSort(a, i+1, right); merge(a, b, left, i, right); /合并到数组b copy(a, b, left, right); /复制回数组a 算法在最坏情况下的时间复杂度为O(nlogn)。6哈弗曼编码算法专心-专注-专业

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁