- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《算法设计与分析》模拟试卷三
《算法设计与分析》模拟试卷三
考试形式:闭卷 考试时间:120分钟
_________ 姓名:_________ 学号:_________ 成绩:_________1个是假币,且假币和真币的重量不同。请用分而治之方法设计一个找出假币的算法,并用伪代码描述你的算法。
4.请用分治法设计算法:在一个整数组A[1..n] 中,同时寻找最大值和最小值。[假设 n 为 2 的方幂]。请用伪代码描述你的算法并分析算法的时间复杂度。
5.定义0/1/2背包问题为:。限制条件为:,且。设f(i , y)表示剩余容量为y,剩余物品为:i,i+1,…,n时的最优解的值。
给出f(i , y)的递推表达式;
请设计求解f(i , y)的算法,并用伪代码描述你的算法;
设W=[10,20,15,30],P=[6,10,15,18],c=48,请用你的算法求解。
6.请设计一个有效的算法,可以进行两个n位(n=2k)十进制大整数的乘法运算。
7.子集和问题:对于集合S={1,2 ,6,8},求子集,要求该子集的元素之和d=9。
画出子集和问题的解空间树;
该树运用回溯算法,写出依回溯算法遍历节点的顺序;
如果S中有n个元素,指定d,用伪代码描述求解子集和问题的回溯算法。
参考答案
1) 13角:2个5角 + 1个2角 + 1个1角;
21角:1个14角+1个5角 + 1个2角;
41角:2个14角 + 2个5角 + 1个2角+ 1个1角;
2) 当要找的钱数是n 角时,用伪代码描述此贪婪算法如下:
float exchange(int fund , int coin [], int x[])
{
int n=coin.length, opt=fund;
Sort(coin); //从大到小
for (int i = 0; i n; i++) x[i] = 0;
j=1;
while (opt0)
{ x[j]=opt/coin[j];
opt=opt%coin[j];
}
return x ;
}
2. 贪婪算法的伪代码为
m=0 // 当前覆盖的大小
对于A 中的所有 i, Out[i]=outdegree[i];
对于 B 中的所有 i, In[i]=indegree[i];
对于B 中的所有i, Cov[i]=false;
for (对于B 中所有入度为 1 的顶点 i) {
设 v 是邻接于B[i]的顶点
C[m++]=v;
for (所有邻接于v 的顶点 j) {
if (! Cov[j]) { Cov[j]=true;
对于所有邻接于j 的顶点,使其 Out[k] 减 1
} } }
while (对于A 中的某些 i, Out[i]0){
设 v 是具有最大Out[i] 的顶点
C[m++]=v;
for (所有邻接于v 的顶点 j) {
if (!Cov[j]) { Cov[j]=true;
对于所有邻接于j的顶点,使其 Out[k] 减1
} } }
if (有些顶点未被覆盖) 失败
else 找到一个覆盖
3. Feit_money(low, high) // 假定伪币较真币轻
if high-low=1 then
if A[low]A[high] then return A[low];
else if A[low]A[high] return A[high];
else
mid=(low+high)/2;
sum1=sum(low, mid);
sum2=sum(mid+1, high);
if sum1sum2 then
Feit_money(low, mid);
else
Feit_money(mid+1, high);
end if
end if
return 0;
4. min_max(low, high)
if high-low=1 then
if A[low]A[high] then return (A[low], A[high]);
else return (A[high], A[low]);
end if
else
mid=(low+high)/2;
(x1, y1)=min_max(low, mid);
(x2, y2)=min_max(mid+1, high);
您可能关注的文档
- 《市场营销》教案 荆州职业技术学院市场营销课程教案 市场营销专业.doc
- 《市政材料员岗位实务知识》试题.doc
- 《市场营销活动企划与策划》课件 01 营销策划理论与实践.ppt
- 《幸福人生讲座》40集蔡礼旭老师主讲.doc
- 《幸福从细小处开始》同步练习.doc
- 《工程机械技术服务与营销》.ppt
- 《幼儿德育生活化研究》结题报告.ppt
- 《应用伦理学》课件-第六讲 科技伦理.ppt
- 《廉政准则》试题题库1.doc
- 《康复评定技术》课程实训指导书.doc
- 人教版数学二年级下册第三单元《图形的运动(一)》提优作业卷(含答案解.pdf
- 人教版三年级数学下册第三单元测试卷(含答案) .pdf
- 云南关于成立半导体分立器件公司可行性报告模板范文 .pdf
- 人教版八年级下册第八章《运动和力》综合精选题高频考点(含答案)-1.pdf
- 仓储管理员技师试题 .pdf
- 人教版小学数学三年级数学下册 《小数的初步认识》单元专项复习拔高卷.pdf
- 中国妇幼卫生监测工作手册(2013版) .pdf
- 中国DCS控制系统行业市场现状及未来发展前景预测分析报告 .pdf
- 中国化学纤维行业市场集中度、市场规模及未来前景分析报告 .pdf
- 五官科医院新院建设工程商业计划书 .pdf
文档评论(0)