算法设计期中试卷、平时作业参考解答.docx
《算法设计期中试卷、平时作业参考解答.docx》由会员分享,可在线阅读,更多相关《算法设计期中试卷、平时作业参考解答.docx(14页珍藏版)》请在咨信网上搜索。
1、算法分析与设计2012-2013-2学期期中测试(信息安全专业DQ教学班)姓名: 学号: 得分: 1. 证明。(10分)证明:对于任意f1(n) O(f(n),存在正常数c1和自然数n1,使得对所有n n1,有f1(n) c1f(n)成立。类似,对于任意g1(n) O(g(n),存在正常数c2和自然数n2,使得对所有n n2,有g1(n) c2g(n)成立。令c3 = maxc1, c2,n3 = maxn1, n2,则对所有的n n3,有f1(n) +g1(n) c1f(n) + c2g(n) c3f(n) + c3g(n) = c3(f(n) + g(n)即成立。2. 将下列5个函数按渐近
2、增长率由低至高进行排序,要求写出比较过程。(15分)解:(1) 是对数函数的幂,是幂函数,因此;(2) ,因此;(3) ,因此;(4) 对和取对数,有,因为,所以;因此,5个函数按渐近增长率由低至高排序为。3. 给定按升序排列的n个不同整数存于数组a1:n中,请设计的算法找到下标i,使得ai = i,如不存在这样的下标,则返回0。(15分)解:令head = 1, rear = n.(1) 当head mid,令rear = mid 1,返回(1)继续执行;如果amid mid,令head = mid + 1,返回(1) 继续执行;(3)返回0值,结束。public static int Se
3、arch(int a, int n) / 在 a0 = a1 = . = an-1 中搜索 ai = i / 找到ai = i时返回i,否则返回0 int left = 0; int right = n 1; while (left mid) right = mid 1; else left = mid + 1; return 0; / 未找到ai = i4. 利用主方法给出下列递归式的渐近界,并用数学归纳法证明式(2)的渐近界。(20分)(1) , (2) , (3) 解:(1) 因此,.(2) 因此,.(3) 而且其中,因此,.证明:假设当时,其中c为常数。因此,命题得证。5. 利用直接展
4、开法求解下列递归式的渐近界。(20分)(1) , (2) 解:(1) (2) 其中,则所以,即.6. 某超市中有n种商品搞活动,每种商品i的重量是wi,其价格为vi,现在给你发一个容量为C的购物车,你可以在这n种商品中选一些放入你的购物车中免费带走。但是要求所选的商品重量之和不能大于购物车容量C,而且超市中每种商品每人最多选两件。请问在这种情况下你如何选择商品使得你能带走的免费商品的价格达到最大?(20分)(a) 为该问题设计一个动态规划算法,要求写出分析过程和递归式。(b) 若该超市共有3种商品搞活动,商品的价值依次为v = (25, 30, 15),商品的重量依次为w = (2, 3, 1
5、),购物车容量为C = 5。运用自底而上的方法求解上述问题,要求画出表格,并给出最优解与最优值!解:方法1 将n种商品全部复制一份得到2n种商品,这样每种商品最多只能选择1件。 定义m(i, j)为购物车容量为j,由第1, , i种商品装入购物车的最优值。 Case 1: 不选择第i种商品 则m(i, j)为当重量限制为j时,1, ,i 1种商品装入购物车所产生的最大价值 Case 2: 选择第i种商品. 新的重量限制为 j wi m(i, j wi) 为新重量限制下,1, , i 1种商品装入购物车所产生的最大价值因此,递归式如下:最优解:选择商品1,1,3, 即选择两个商品1, 一个商品3
6、 最优值 = 25+25+15=65方法2 定义m(i, j)为购物车容量为j,由第1, , i种商品装入购物车的最优值。 Case 1: 不选择第i种商品 则m(i, j)为当重量限制为j时,1, ,i 1种商品装入购物车所产生的最大价值 Case 2: 仅选择1格第i种商品. 新的重量限制为 j wi m(i, j wi) 为新重量限制下,1, , i 1种商品装入购物车所产生的最大价值 Case 3: 选择两个第i种商品 新的重量限制为 j 2wi m(i, j 2wi) 为新重量限制下,1, ,i 1种商品装入购物车所产生的最大价值因此,递归式如下:最优解:选择两个商品1, 一个商品3
7、 最优值 = 25+25+15=65第2章作业:算法分析基础1. 算法与程序的区别 (1).算法特性之一是有穷性,程序不一定满足有穷性。(2). 计算机程序是用来给计算机读的,而算法是给人来读的,直接将算法输入计算机是不能运行的。(3).算法是解决问题的一种方法或一个过程,而程序则是算法用某种程序设计语言的具体实现。2. 将下列函数按渐进增长率由低到高排列出来。令,则有显然上述4个函数的渐近增长率排序为;显然上述3个函数的渐近增长率排序为;因此,原函数的渐近增长率排序为。3. 已知,证明。证明:因为,存在正常数c0和自然数n0,使得对所有n n0,有成立。令c1 = c0 + 1,则对所有的n
8、 n0,有f(n) +g(n) f(n) + c0f(n) (1 + c0)f(n) = c1f(n) 即成立。第3章作业:分治递归1.画出T(n)=2T(n/2)+1的递归树,并给出其解的渐进界。然后用数学归纳法证明给出的界。证明:假设当时,其中c1和c2为常数。因此,命题得证。2.直接展开法求解递归式T(n)=T(n/2)+13.用主方法求解递归式1.T(n)=4T(n/2)+n, 2.T(n)=4T(n/2)+n2, 3.T(n)=4T(n/2)+n3, 4.T(n)=3T(n/2)+ n2请参考期中测试答案。第4章作业:动态规划1、设计一个O(n*log k) 时间的分治递归算法,将k
9、个排好序的序列合并成一个排好序的序列,其中 k个序列共计包含n个元素。a1a2a3a4akak1a1a2a3a4ak1aka1a4ak3aka1ak/2ak/2+1aka1ak将k个有序数列两两合并排序,得到个有序数列,再次两两合并排序,得到个有序数列,重复操作直至得到一个长度为n的有序数列。共计log k 次合并排序,每次合并排序数据的总体规模为n,则时间复杂度为O(n log k)2、给定数组a1n,n为偶数。设计一个算法,在最坏情况下用 3n/2 1 次比较找出a1n中元素的最大值和最小值。将a1aN两两分成一组,即为a1和a2 , a3和a4 , a5和a6 , 共计N/2组,每组中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 期中 试卷 平时 作业 参考 解答
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。