1、0 cg(n)0,存在正数和 n0 0 使得对所有 n n0 有:0 cg(n)f(n);1.程序段的所需要的计算时间为()。int MaxSum(int n,int*a,int&besti,int&bestj)int sum=0;for(int i=1;i=n;i+)int thissum=0;for(int j=i;jsum)sum=thissum;besti=i;bestj=j;return sum;2.有 11 个待安排的活动,它们具有下表所示的开始时间与结束时间,如果以贪心算法求解这些活动的最优安排(即为活动安排问题:在所给的活动集合中选出最大的相容活动子集合),得到的最大相容活动子
2、集合为活动(1,4,8,11)。3.所谓贪心选择性质是指(所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到)。4.所谓最优子结构性质是指(问题的最优解包含了其子问题的最优解)。5.回溯法是回溯法是指(具有限界函数的深度优先生成法)。6.用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。在任何时刻,算法只保存从根结点到当前扩展结点的路径。如果解空间树 中从根结点到叶结点的最长路径的长度为 h(n),则回溯法所需的计算空间通常为(O(h(n)。7.回溯法的算法框架按照问题的解空间一般分为(子集树)算法框架与(排列树)算法框架。8.用回溯法解 0/1 背包问题时,该问题
3、的解空间结构为(子集树)结构。9.用回溯法解批处理作业调度问题时,该问题的解空间结构为(排列树)结构。10.用回溯法解 0/1 背包问题时,计算结点的上界的函数如下所示,请在空格中填入合适的内容:Typep Knap:Bound(int i)/计算上界 Typew cleft=c-cw;/剩余容量 Typep b=cp;/结点的上界 /以物品单位重量价值递减序装入物品 while(i=n&wi=cleft)cleft-=wi;b+=pi;i+;/装满背包 if(i=n)(b+=pi/wi*cleft);return b;11.用回溯法解布线问题时,求最优解的主要程序段如下。如果布线区域划分为
4、的方格阵列,扩展每个结点需 O(1)的时间,L 为最短布线路径的长度,则算法共耗时(O(mn),构造相应的最短距离需要(O(L)时间。for(int i=0;i NumOfNbrs;i+)nbr.row=here.row+offseti.row;nbr.col=here.col+offseti.col;if(gridnbr.rownbr.col=0)/该方格未标记 gridnbr.rownbr.col =gridhere.rowhere.col+1;if(nbr.row=finish.row)&(nbr.col=finish.col)break;/完成布线 Q.Add(nbr);12.用回溯法
5、解图的 m 着色问题时,使用下面的函数 OK 检查当前扩展结点的每一个儿子所相应的颜色的可用性,则需耗时(渐进时间上限)(O(mn)。Bool Color:OK(int k)/for(int j=1;j=n;j+)if(akj=1)&(xj=xk)return false;return true;13.旅行售货员问题的解空间树是(排列树)。6.7.二、解答题 1.机器调度问题。问题描述:现在有 n 件任务和无限多台的机器,任务可以在机器上得到处理。每件任务的开始时间为 si,完成时间为 fi,si n)/到达叶结点 更新最优解 bestx,bestw;return;r-=wi;if(cw+wi
6、 bestw)xi=0;/搜索右子树 backtrack(i+1);r+=wi;5.用分支限界法解装载问题时,对算法进行了一些改进,下面的程序段给出了改进部分;试说明斜线部分完成什么功能,以及这样做的原因,即采用这样的方式,算法在执行上有什么不同。/检查左儿子结点 Type wt=Ew+wi;/左儿子结点的重量 if(wt bestw)bestw=wt;/加入活结点队列 if(i bestw&i 0 故 Ew+rbestw 总是成立。也就是说,此时右子树测试不起作用。为了使上述右子树测试尽早生效,应提早更新 bestw。又知算法最终找到的最优值是所求问题的子集树中所有可行结点相应重量的最大值。
7、而结点所相应得重量仅在搜索进入左子树是增加,因此,可以在算法每一次进入左子树时更新 bestw 的值。7.最长公共子序列问题:给定 2 个序列 X=x1,x2,xm和 Y=y1,y2,yn,找出 X和 Y 的最长公共子序列。由最长公共子序列问题的最优子结构性质建立子问题最优值的递归关系。用 cij记录序列 Xi 和 Yj 的最长公共子序列的长度。其中,Xi=x1,x2,xi;Yj=y1,y2,yj。当 i=0 或 j=0 时,空序列是 Xi 和 Yj 的最长公共子序列。故此时Cij=0。其它情况下,由最优子结构性质可建立递归关系如下:在程序中,bij记录 Cij的值是由哪一个子问题的解得到的。
8、(1)请填写程序中的空格,以使函数 LCSLength 完成计算最优值的功能。void LCSLength(int m,int n,char*x,char*y,int*c,int*b)int i,j;for(i=1;i=m;i+)ci0=0;i+)c0i=0;i+)for(j=1;j=cij-1)cij=ci-1j;bij=2;else cij=cij-1;bij=3;(2)函数 LCS 实现根据 b 的内容打印出 Xi 和 Yj 的最长公共子序列。请填写程序中的空格,以使函数 LCS 完成构造最长公共子序列的功能(请将 bij的取值与(1)中您填写的取值对应,否则视为错误)。void LCS
9、(int i,int j,char*x,int*b)if(i=0|j=0)return;if(bij=1)LCS(i-1,j-1,x,b);cout0)printf(%dn,k);f(k-1);一、简要回答下列问题:1.算法重要特性是什么?2.算法分析的目的是什么?3.算法的时间复杂性与问题的什么因素相关?4.算法的渐进时间复杂性的含义?5.最坏情况下的时间复杂性和平均时间复杂性有什么不同?6.简述二分检索(折半查找)算法的基本过程。7.背包问题的目标函数和贪心算法最优化量度相同吗?8.采用回溯法求解的问题,其解如何表示?有什么规定?9.回溯法的搜索特点是什么?10.n 皇后问题回溯算法的判别
10、函数 place 的基本流程是什么?11.为什么用分治法设计的算法一般有递归调用?12.为什么要分析最坏情况下的算法时间复杂性?13.简述渐进时间复杂性上界的定义。14.二分检索算法最多的比较次数?15.快速排序算法最坏情况下需要多少次比较运算?16.贪心算法的基本思想?17.回溯法的解(x1,x2,xn)的隐约束一般指什么?18.阐述归并排序的分治思路。19.快速排序的基本思想是什么。20.什么是直接递归和间接递归?消除递归一般要用到什么数据结构?21.什么是哈密顿环问题?22.用回溯法求解哈密顿环,如何定义判定函数?23.请写出 prim 算法的基本思想。参考答案:1.确定性、可实现性、输
11、入、输出、有穷性 2.分析算法占用计算机资源的情况,对算法做出比较和评价,设计出额更好的算法。3.算法的时间复杂性与问题的规模相关,是问题大小 n 的函数。4当问题的规模 n 趋向无穷大时,影响算法效率的重要因素是 T(n)的数量级,而其他因素仅是使时间复杂度相差常数倍,因此可以用 T(n)的数量级(阶)评价算法。时间复杂度 T(n)的数量级(阶)称为渐进时间复杂性。5.最坏情况下的时间复杂性和平均时间复杂性考察的是 n 固定时,不同输入实例下的算法所耗时间。最坏情况下的时间复杂性取的输入实例中最大的时间复杂度:W(n)=max T(n,I),IDn 平均时间复杂性是所有输入实例的处理时间与各
12、自概率的乘积和:A(n)=P(I)T(n,I)IDn 6.设输入是一个按非降次序排列的元素表 Ai:j 和 x,选取 A(i+j)/2与 x 比较,如果 A(i+j)/2=x,则返回(i+j)/2,如果 A(i+j)/2x,则 Ai:(i+j)/2-1找 x,否则在 A(i+j)/2+1:j 找 x。上述过程被反复递归调用。回溯法的搜索特点是什么 7.不相同。目标函数:获得最大利润。最优量度:最大利润/重量比。8.问题的解可以表示为 n 元组:(x1,x2,xn),xiSi,Si 为有穷集合,xiSi,(x1,x2,xn)具备完备性,即(x1,x2,xn)是合理的,则(x1,x2,xi)(in
13、)一定合理。9.在解空间树上跳跃式地深度优先搜索,即用判定函数考察 xk的取值,如果 xk是合理的就搜索 xk为根节点的子树,如果 xk取完了所有的值,便回溯到 xk-1。10.将第 K 行的皇后分别与前 k-1 行的皇后比较,看是否与它们相容,如果不相容就返回 false,测试完毕则返回 true。11.子问题的规模还很大时,必须继续使用分治法,反复分治,必然要用到递归。12 最坏情况下的时间复杂性决定算法的优劣,并且最坏情况下的时间复杂性较平均时间复杂性游可操作性。13.T(n)是某算法的时间复杂性函数,f(n)是一简单函数,存在正整数 No 和 C,nNo,有 T(n)f(n),这种关系记作 T(n)=O(f(n)。14.二分检索算法的最多的比较次数为 log n。15.最坏情况下快速排序退化成冒泡排序,需要比较 n2 次。16.是一种依据最优化量度依次选择输入的分级处理方法。基本思路是:首先根据题意,选取一种量度标准;然后按这种量度标准对这 n 个输入排序,依次选择输入量加入部分解中。如果当前这个输入量的加入,不满足约束条件
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1