付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、已知下列递推式:C(n) = 1若n =1= 2C(n/2) + n 1 若n 2请由定理1 导出C(n)的非递归表达式并指出其渐进复杂性。定理1:设a,c为非负整数,b,d,x为非负常数,并对于某个非负整数k, 令n=ck, 则以下递推式f(n)=d若 n=1=af(n/c)+bnx若 n=2的解是f(n)= bnxlogcn + dnx若 a=cxf(n)= 若 acx解:取f(n) = C(n) 1,则 f(n) = 0 f(n) = 2C( n / 2) + n 2 若n=1 = 2f(n / 2) + n 若n= 2带入定理1:a = 2, d = 0, c = 2, b = 1
2、, x = 1,因为a=cx所以f(n) = nlog2n所以C(n) = f(n) + 1 = nlog2n + 1C(n)的渐进复杂度为O(nlog2n)二、由于Prim算法和Kruskal 算法设计思路的不同,导致了其对不同问题实例的效率对比关系的不同。请简要论述:1、如何将两种算法集成,以适应问题的不同实例输入;2、你如何评价这一集成的意义?解:Prime的时间复杂度为O(n2) (其中n 为顶点数), Kruskal 算法的时间复杂度为 O(eln(e) (其中e为边数),因此对于顶点少的输入,适合Prime算法,对于边比较少的输入,适合Kruskal 算法。评价算法的优劣需要根据输
3、入数据的特点。对于不同特征的输入最适用的算法可能不同。三、分析以下生成排列算法的正确性和时间效率:HeapPermute(n)/实现生成排列的Heap算法/输入:一个正正整数n和一个全局数组A1.n/输出:A中元素的全排列if n = 1write Aelsefor i 1 to n doHeapPermute(n-1)if n is oddswap A1and Anelse swap Aiand An解:正确性:n=1时,输出A1n=2时,输出A1A2,A2A1n=3时,i=1时,HeapPermute(2)输出A1A2的全排列,并将A变为A2A1A3,并交换1,3位,得A3A1A2i=2时
4、,HeapPermute(2)输出A3A1的全排列,并将A变为A1A3A2,交换1,3位,得A2A3A1i=3时,HeapPermute(2)输出A2A3的全排列,并将A变为A3A2A1,交换1,3位,得A1A2A3算法运行结束后,A的元素顺序不变。n=4时,i=1时,HeapPermute(3)输出A1A2A3的全排列,并且A1A2A3顺序不变,交换1,4位,得A4A2A3A1i=2时,HeapPermute(3)输出A4A2A3的全排列,并且A4A2A3顺序不变,交换2,4位,得A4A1A3A2i=3时,HeapPermute(3)输出A4A1A3的全排列,并且A4A1A3顺序不变,交换3
5、,4位,得A4A1A2A3i=4时,HeapPermute(3)输出A4A1A2的全排列,并且A4A1A2顺序不变,交换4,4位,得A4A1A2A3算法运行结束后,数组A循环右移一位。因此可得出结论:当n为偶数时,HeapPermute(n)输出全排列后数组元素循环右移一位。当n为奇数时,HeapPermute(n)输出全排列后数组元素顺序保持不变。归纳法证明如下:(1)i=1时,显然成立。(2)i=k为偶数时,假设输出的是全排列,则i=k+1(奇数)时,k+1次循环中,每次前k个元素做全排列输出后循环右移一位,所以对换swap A1and An可以保证每次将前k个元素中的一个换到k+1的位置
6、,所以k+1次循环后输出的是A1k+1的全排列。(3)i=k为奇数时,假设输出的是全排列,则i=k+1(偶数)时,k+1次循环中,每次前k个元素做全排列输出后顺序保持不变,所以对换swap Aiand An可以保证每次将前k个元素中的一个换到k+1的位置,所以k+1次循环后输出的是A1k+1的全排列。正确性得证。时间复杂度:由算法流程得:F(n) = 1 n=1= n * (F(n - 1) + 2) n1= n * (n - 1) * (F(n - 2) + 2) + 2) = n(n - 1) * F(n-2) + 2n2= n! + 2 * nn-1因此时间复杂度为O(n!) + O(n
7、n-1)四、对于求n 个实数构成的数组中最小元素的位置问题,写出你设计的具有减治思想算法的伪代码,确定其时间效率,并与该问题的蛮力算法相比较。Min(A1.n, n, &loc)If(n = 1)Return A1Elseloc1, loc2Min1 = Min(A1.n/2, n/2, &loc1)Min2 = Min(An/2 + 1. n, n/2, &loc2)If(Min1 1= 2(2F(n/4) + 1) + 1 = 4F(n/4) + 2 + 1= 2kF(2k/2k) + 1 + 2 + + 2k-1 ( n=2k)= 2n 1复杂度为O(n),蛮力法也为O(n)五、请给出约瑟夫斯问题的非递推公式 J(n),并证明之。其中,n 为最初总人数,J(n) 为最后幸存者的最初编号。 解:非递推公式为:设J(n) = 2*b+1,其中n = 2m + b (0b1时,分两种情况讨论:当n=2k,即为偶数时,假设k = n/2时成立,即k = 2m + b,则J(k) = 2b+1,由n=2k得n = 2m+1 + 2bJ(n) = J(2k) = 2J(k) 1 = 2(2b+1) 1 = 4b + 1 = 2(2b) + 1,对n成立当n=2k+1,即为奇数时,假设k = (n-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共场所卫生知识培训考试题及答案
- 高校成果转化业务考试题完整版及答案2026年
- 福建省南平市2026年第8期建设领域施工现场专业人员(八大员)培训测试(土建施工员)训练题及答案
- 2026年中医耳鼻喉科慢性鼻病季节预防健康教育试卷及答案
- 循环流化床锅炉运行缺陷分析与正确安装培训课件
- 注塑生产管理实战培训
- 乙苯、苯乙烯装置安全培训课件
- 平板式振动器安全操作技术交底培训
- 沥青混凝土摊铺安全技术交底培训课件
- 2025-2026学年贵州省贵阳市一中高二上学期开学考英语试题及答案
- 新版2026秋新教材湘美版小学美术五年级上册(全册) 教学设计合集
- 2026年青海高职单招(英语)考试试卷(真题)答案解析
- 2026年风机故障检修考试题库(附答案)
- 【新教材】2026年秋季学期人教PEP版(2024)四年级上册英语教学计划
- 浙教版一年级英语上册English for kids Grade 1A教案
- 2026年全国房地产经纪人之业务操作考试历年考试题(附答案)
- 钢结构网架加固改造施工方案
- 2026年度医师定期考核【执业-5】
- 2026年建筑起重机械司机(施工升降机)试题库(含答案)
- T∕IAC CAMRA 50-2024 事故汽车常用零部件修复与更换判别规范
- GB/T 6113.203-2025无线电骚扰和抗扰度测量设备和测量方法规范第2-3部分:无线电骚扰和抗扰度测量方法辐射骚扰测量
评论
0/150
提交评论