版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、算法分析与设计作业(一)本课程作业由两部分组成。第一部分为“客观题部分”,由15个选择题组成,每题1分,共15分。第二部分为“主观题部分”,由简答题和论述题组成,共15分。作业总分30分,将作为平时成绩记入课程总成绩。客观题部分:一、 选择题(每题1分,共15题)1、递归算法: ( C ) A、直接调用自身 B、间接调用自身 C、直接或间接调用自身 D、不调用自身2、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的字问题,这些子问题: ( D )A、相互独立 B、与原问题相同 C、相互依赖 D、相互独立且与原问题相同 3、备忘录方法的递归方式是: ( C )A、自顶向下 B、自底向上
2、 C、和动态规划算法相同 D、非递归的4、回溯法的求解目标是找出解空间中满足约束条件的: ( A ) A、所有解 B、一些解 C、极大解 D、极小解 5、贪心算法和动态规划算法共有特点是: ( A )A、最优子结构 B、重叠子问题 C、贪心选择 D、形函数 6、哈夫曼编码是: ( B) A、定长编码 B、变长编码 C、随机编码 D、定长或变长编码 7、多机调度的贪心策略是: ( A)A、最长处理时间作业优先 B、最短处理时间作业优先 C、随机调度 D、最优调度8、程序可以不满足如下性质: ( D ) A、零个或多个外部输入 B、至少一个输出 C、指令的确定性 D、指令的有限性9、用分治法设计出
3、的程序一般是: ( A )A、递归算法 B、动态规划算法 C、贪心算法 D、回溯法10、采用动态规划算法分解得到的子问题: ( C )A、相互独立 B、与原问题相同 C、相互依赖 D、相互独立且与原问题相同 11、回溯法搜索解空间的方法是: ( A ) A、深度优先 B、广度优先 C、最小耗费优先 D、随机搜索 12、拉斯维加斯算法的一个显著特征是它所做的随机选性决策有可能导致算法: ( C )A、所需时间变化 B、一定找到解 C、找不到所需的解 D、性能变差 13、贪心算法能得到: ( C ) A、全局最优解 B、0-1背包问题的解 C、背包问题的解 D、无解 14、能求解单源最短路径问题的
4、算法是: ( A )A、分支限界法 B、动态规划 C、线形规划 D、蒙特卡罗算法15、快速排序算法和线性时间选择算法的随机化版本是: ( A ) A、舍伍德算法 B、蒙特卡罗算法 C、拉斯维加斯算法 D、数值随机化算法主观题部分:二、 写出下列程序的答案(每题2.5分,共2题) 1、请写出批处理作业调度的回溯算法。#include#includeusing namespace std; class Flowingfriend int Flow(int * ,int ,int );private: /int Bound(int i); void Backtrack(int t); int *M;
5、/ int *x;/当前解 int *bestx;/ int *f2;/ int f1;/ int f;/ int bestf;/ int n;/ ;void Flowing:Backtrack(int i)if(in)for(int j=1;j=n;j+)bestxj=xj;bestf=f;elsefor(int j=i;jf1)?f2i-1:f1)+Mxj2;f+=f2i;if(fbestf)swap(xi,xj);Backtrack(i+1);swap(xi,xj);f1-=Mxj1;f-=f2i;int Flow(int * M,int n,int bestx)int ub=INT_M
6、AX;Flowing X;X.x=new intn+1;X.f2=new intn+1;X.M=M;X.n=n;X.bestx=bestx;X.bestf=ub;X.f1=0;X.f=0;for(int i=0;i=n;i+)X.f2i=0,X.xi=i;X.Backtrack(1);delete X.x;delete X.f2;return X.bestf;void main()int *M;int n;int *bestx;coutn;M=new int *n+1;cout请输入各作业处理时间:endl;for(int i=1;i=n;i+)Mi=new int2;for(int k=1;
7、k=n;k+)for(int j=1;jMkj;bestx=new intn+1;for(i=1;i=n;i+)bestxi=0;cout最优完成时间:Flow(M,n,bestx)endl;cout最优方案:;for(i=1;i=n;i+)cout作业bestxi ;cout=8时,f(n)=g(n),故f(n)=O(g(n)分析:此类题目不易直接看出阶的高低,可用几个数字代入观察结果。 如依次用n=1, 21, 22, 23, 26, 28, 210 (3) f(n)=n; g(n)=log2n;f(n)= (4) f(n)=nlogn+n; g(n)=logn;f(n)= (5) f(n
8、)=10; g(n)=log10;f(n)=(6) f(n)= log2n; g(n)=logn;f(n)= (7) f(n)=2n; g(n)=100n2;f(n)= (8) f(n) =2n; g(n)=3n;f(n)=O(g(n)三、写出下列题目的程序(每题5分,共2题)1、请写出背包问题的贪心算法。procedure GREEDY-KNAPSACK(P,W,M,X,n) X0 /将解向量初始化为零/ cuM /cu是背包剩余容量/ for i1 to n do if W(i) cu then exit endif X(i) 1 ; cu cu-W(i) ; repeat ; if in
9、 then X(i) cu/ W(i) ; endif end GREEDY-KNAPSACK 2、字符串比较问题问题描述:对于长度相同的2个字符串A和B,其距离定义为相应位置字符距离之和。2个非空格字符的距离是它们的ASCII码之差的绝对值。空格与空格的距离为0,空格与其它字符的距离为一定值k。在一般情况下,字符串A和B的长度不一定相同。字符串A的扩展是在A中插入若干空格字符所产生的字符串。在字符串A和B的所有长度相同的扩展中,有一对距离最小的扩展,该距离称为字符串A和B的扩展距离。对于给定的字符串A和B,试设计一个算法,计算其扩展距离。编程任务:对于给定的字符串A和B,编程计算其扩展距离。
10、数据输入:由文件input.txt给出输入数据。第1行是字符串A,第2行是字符串B,第3行是空格与其它字符的距离定值k。结果输出:将计算出的字符串A和B的扩展距离输出到文件output.txt。 输入文件示例 输出文件示例 input.txt output.txt cmc 10 snmn 2解答:设字符串A和B的字串A1.i和B1.j的扩展距离是val(i, j);依题意,字符串A和B有三种可能的情况:1)A串最后一个字符是空格,B串最后一个字符是字母,则val(i, j) = val(i-1, j) + k;2)A串最后一个字符时字母,B串最后一个字符时空格,则val(i, j) = val
11、(i, j-1) + k;3)A串和B串最后一个字符均是字母,则val(i, j) = val(i-1, j-1) + dist(ai , bi);由上可知,val(i, j)具有最优子结构性质,且满足如下递推式:val(i, j) = min val(i-1, j) + k,val(i, j) + k,val(i-1, j-1) + dist(ai , bi) (使用动态规划算法,自底向上的计算各个子问题并利用每次计算的结果,避免重复运算,从而降低算法复杂度。)从动态规划递归式可知,算法的时间复杂度为O(mn),m和n分别是字符串A和B的长度。代码如下:#include #include #
12、define MAX 100000 /标识最大的可能整数int val300300; std:string stra; /字符串A std:string strb; /字符串B int k; /定值k /返回字符a与b的ASCII码的差的绝对值int dist(char a, char b) return abs(a-b); int comp() int len1, len2; int tmp; val00 = 0; len1 = stra.length(); len2 = strb.length(); for(int i=0; i=len1; i+) /字符串A和B的有效下标是1len,下标0表示空字符串 /i或j是0表示A或B串为空串 for(int j=0; j=len2; j+) if(i+j)/i和j至少一个大于0 valij = MAX; tmp = vali-1j + k; if(i & (tmpvalij)/i大于0 valij = tmp; tmp = valij-1+k; if(j & (tmpvalij)/j大于0 valij = tmp; tm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年云南职教高考医学类专业理论考试题库(含答案)
- 2025年毕节职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年武汉工贸职业学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2024喜剧综艺年度报告
- 2025春季新学期,中小学校长在全体教师大会上发言:从电影《熊出没重启未来》破局解锁新学期教育密码
- 10kV配电站房工程的电气设计方案与性能分析
- 幼儿园组织活动设计策划方案五篇
- 商业街店面租赁合同范本
- 幼儿园中班冬季教育活动策划方案五篇
- 2024年绿色能源产业投资合作合同
- 2025-2030年中国纳米氧化铝行业发展前景与投资战略研究报告新版
- 2025年度正规离婚协议书电子版下载服务
- 2025年贵州蔬菜集团有限公司招聘笔试参考题库含答案解析
- 2025年教科室工作计划样本(四篇)
- 【7历期末】安徽省宣城市2023-2024学年七年级上学期期末考试历史试题
- 春节后安全生产开工第一课
- 2025光伏组件清洗合同
- 电力电缆工程施工组织设计
- 2024年网格员考试题库完美版
- 《建筑与市政工程防水规范》解读
- 2024年重庆市中考数学试题B卷含答案
评论
0/150
提交评论