




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 复杂性分析初步 习题,1. 试确定下述程序的执行步数,该函数实现一个mn矩阵与一个np矩阵之间的乘法:,s/e 表示每次执行该语句所要执行的程序步数,频率是指该语句总的执行次数。,2 函数MinMax用来查找数组a0:n-1中的最大元素和最小元素,以下给出两个程序。令n为实例特征。试问:在各个程序中,a中元素之间的比较次数在最坏情况下各是多少?,6. 按照渐进阶从低到高的顺序排列以下表达式:,template bool MinMax(T a, int n, int ,最好,最坏,平均比较次数都是 2*(n-1),template bool MinMax(T a, int n, int ,最坏2*(n-1) 最好 n-1, 平均,7. 1)假设某算法在输入规模是 时为 .在某台计算机上实现并完成该算法的时间是 秒. 现有另一台计算机,其运行速度为第一台的64倍, 那么,在这台计算机上用同一算法在 秒内能解决规模为多大的问题?,关系式: 时间复杂度(计算步数)*运行速度(时间/每步)=运行所需时间,解:设在新机器上 秒内能解决规模为 的问题,时间复杂度为,由于新机器运行速度提高64倍,则运行速度变为,由关系式,,得,解,得,由于新复杂度 ,新机器的运行速度为,2) 若上述算法改进后,新算法的计算复杂度为 , 则在新机器上用,秒时间能解决输入规模为多大的问题?,代入关系式,,得,设在新机器上用 秒时间能解决输入规模为 的问题,则,解,得,3)若进一步改进算法,最新的算法的时间复杂度为 ,其余条件不变,在新机器上运行,在 秒内能够解决输入规模为多大的问题?,设可解决的最大时间复杂度为 ,则,可解决的最大时间复杂度为,,(n为原始的输入规模)。,所以任意规模的问题都可在t秒内解决。,因为 ,且为常数不随输入规模n变化,,8. Fibonacci数有递推关系:,试求出,的表达式。,的出度连接点,使得,第二章 图与遍历算法 习题,1.证明下列结论: 1)在一个无向图中,如果每个顶点的度大于等于2,则该图一定含有圈; 2)在一个有向图D中,如果每个顶点的出度都大于等于1,则该图一定含有一个有向圈。,1)证明:设无向图最长的无重复顶点的迹,因为每个顶点的度大于等于2,,故存在与 相异的点 与 相邻。,若 则得到比 更长的迹,与P的取法矛盾。,因此, , 故 是闭迹。因无重复顶点,故存在圈,2)证明:同(1),设有向图最长的无重复顶点的有向迹,因为每个顶点出度大于等于1,故存在 为,成为一条有向边,若,则得到比,更长的有向迹,与P最长矛盾。,,从而该图一定含有有向圈。,因此必有,(若顶点重复已含有圈),2.设D是至少有三个顶点的连通有向图。如果D中包含有向的Euler环游(即是通过D中每条有向边恰好一次的闭迹),则D中每一顶点的出度和入度相等。反之,如果D中每一顶点的出度与入度都相等,则D一定包含有向的Euler环游。这两个结论是正确的吗?请说明理由。如果G是至少有三个顶点的无向图,则G包含Euler环游的条件是什么? 3设G是具有n个顶点和m条边的无向图,如果G是连通的,而且满足m = n-1,证明G是树。 4假设用一个nn的数组来描述一个有向图的nn邻接矩阵,完成下面工作: 1)编写一个函数以确定顶点的出度,函数的复杂性应为 ; 2)编写一个函数以确定图中边的数目,函数的复杂性应为 ; 3)编写一个函数删除边(i,j),并确定代码的复杂性。,5.实现图的D-搜索算法。要求用ALGEN语言写出算法的伪代码,或者用一种计算机高级语言写出程序。,6.下面的无向图以邻接链表存储,而且在关于每个顶点的链表中与该顶点相邻的顶点是按照字母顺序排列的。试以此图为例描述讲义中算法DFNL的执行过程。,邻接链表 A-B-E|0 B-A-C|0 C-B-D-E|0 D-C|0 E-A-C-F-G|0 F-E-G|0 G-E-F|0,A-B-E|0 B-A-C|0 C-B-D-E|0 D-C|0 E-A-C-F-G|0 F-E-G|0 G-E-F|0,初始化 DFN:=0,num:=1; DFNL(A,null), DFN(A):=num=1; L(A):=num=1; num+:=2。 DFN(B)=0, DFNL(B,A) DFN(B):=num= 2, L(B):=num=2, num+:=3; DFN(A)=10, A=A, 无操作。 DFN(C)=0 DFNL(C,B) DFN(C):= num=3, L(C):=num=3,num+:=4; DFN(B)=10, B=B, 无操作. DFN(D)=0, DFNL(D,C), DFN(D):=num= 4; L(D):=num=4; num+:=5; DFN(C)=30,C=C,无操作. DFNL(D,C) 结束。 DFN(E)=0, DFNL(E,C), DFN(E):=5; L(E):=5; num+:=6; DFN(A)=10,AC, L(E)=min (L(E), DFN(A)=1。 DFN(C)=30,C=C,无操作。 DFN(F)=0,DFNL(F,E), DFN(F):=num=6; L(F):=num=6; num+:=7; DFN(E)=50,E=E,无操作。 DFN(G)=0,DFNL(G,F), DFN(G):=num=7; L(G):=num=7; num+:=8; DFN(E)=50,EF,L(G)=min (L(G),DFN(E)=5; DFN(F)=60,F=F,无操作。 DFNL(G,F) 结束 L(F):=min (L(F),L(G)=min(6,5)=5 DFNL(F,E)的结束。 L(E):=min (L(E),L(F)=min(1,5)=1 DFNL(E,C) 结束。 L(C):=min (L(C),L(E)=min(3,1)=1 DFNL(C,B) 结束。 L(B):=min (L(B),L(C)=min(2,1)=1 DFNL(B,A) 结束。 L(A):=min (L(A),L(B)=1 因DFN(E)=0,E null,则L(A)=min (L(A),DFN(E)=1 DFNL(A,null) 结束。,7. 对图的另一种检索方法是 D-Search。该方法与 BFS 的不同之处在于将队列换成栈,即下一个要检测的结点是最新加到未检测结点表的那个结点。 1)写一个D-Search算法; 2)证明由结点v开始的D-Search能够访问v可到达的所有结点; 3)你的算法的时、空复杂度是什么?,(类比BFS算法),(类比定理2.2.1证明),proc DBFS(v) / PushS(v , S);/ 将S初始化为只含有一个元素v的栈 while S非空 do u:= PullHead(S); count:=count+1; visitedu:=count; for 邻接于u的所有顶点w do if sw=0 then PushS(w , S); /将w压入栈中 sw:=1; endif endfor endwhile endDBFS 图的D搜索算法伪代码: proc DBFT(G, ) /count、s同DBFS中的说明,branch是统计图G的连通分支数 count:=0; branch:=0; for i to n do si:=0; /将所有的顶点标记为未被访问 endfor for i to do if si=0 then DBFS(i); branch:=branch+1; endif endfor endDBFT,2)证明:除结点v外,只有当结点w满足sw=0时才被压入栈中,因此每个结点至多有一次被压入栈中,搜索不会出现重叠和死循环现象,对于每一个v可到达的节点,要么直接被访问,要么被压入栈中,只有栈内节点全部弹出被访问后,搜索才会结束,所以由结点v开始的D-Search能够访问v可到达的所有结点。 3)除结点v外,只有当结点w满足sw=0时才被压入栈中,因此每个结点至多有一次被压入栈中。需要的栈 空间至多是-1;visited数组变量所需要的空间为;其余变量所用的空间为O(1),所以s(,)= ()。 如果使用邻接链表, for循环要做d(u)次,而while循环需要做次,又visited、s和count的赋值都需要次操作,因而t (,)= (+ )。 如果采用邻接矩阵,则while循环总共需要做2次操作,visited、s和count的赋值都需要次操作,因而t (,)= (2)。,8.考虑下面这棵假想的对策树: 1)使用最大最小方法(2-4-2)式获取各结点的值; 2)弈者A为获胜应该什么棋着? 3)列出算法VEB计算这棵对策树结点的值时各结点被计算的顺序 4)对树中每个结点X,用(2-4-3)式计算V(X); 5)在取X根,l=10, LB =-, D=的情况下,用算法AB计算此树的根的值期间,这棵树的那些结点没有计算?,1)使用最大最小方法(2-4-2)式获取各结点的值,max,max,max,min,min,2)弈者A为获胜应该什么棋着?,20,6,4,20,5,4,8,15,6,20,30,5,50,8,4,15,20,5,10,30,5,9,20,50,18,6,15,10,5,5,20,X,X1,X2,X3,X4,X1.1,X1.2,X2.1,X2.2,X3.1,X3.2,X4.1,X4.2,X1.1.1,X1.1.2,X1.1.3,X1.2.1,X2.1.1,X2.2.1,X3.1.1,X3.1.2,X1.1.1.1,X3.1.2.1,X3.2.1,X3.2.2,X3.2.3,X4.1.1,X4.2.1,X4.4.2,X4.2.3,X4.2.4,3)列出算法VEB计算这棵对策树结点的值时各结点被计算的顺序,4,6,15,10,5,1,-5,2,3,4,6,9,-10,-15,15,-6,6,5,7,8,-6,-4,4,10,11,-4,3)列出算法VEB计算这棵对策树结点的值时各结点被计算的顺序,4)对树中每个结点X,用(2-4-3)式计算V(X);,5)在取X根,l=10, LB =-, D=的情况下,用算法AB计算此树的根的值期间,这棵树的那些结点没有计算?,20,-6,-6,-20,-20,6,15,6,20,30,20,-4,-15,-20,-5,-10,-30,-5,-6,-15,-10,-5,5,20,5)在取X根,l=10, LB =-, D=的情况下,用算法AB计算此树的根
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业园区生态修复与环保设施建设合同
- 碳中和产业园区共建与运营合作协议
- 网络直播数字调音台扩展卡租赁及品牌推广合作协议
- 网络新闻用户数据保密协议
- 小红书平台合作人权益保护与营销支持服务协议
- 医疗机构中患者隐私与知情权平衡协议
- 互联网企业版权保护与知识产权代理合同
- 航空器部件制造与检测技术服务合同
- 抖音短视频内容创作者权益保护与收益分配协议
- 中老铁路物流运输车辆排放达标与环保治理合作协议
- 2024年贵州省德江县事业单位公开招聘医疗卫生岗笔试题带答案
- 高考二轮专题复习:图文转换
- 2024年甘肃省大数据中心招聘工作人员笔试真题
- 崇左市人民检察院招聘机关文员笔试真题2024
- (二模)2025年4月潍坊市高三高考模拟考试地理试卷(含答案)
- 香港劳务服务合同协议
- 高二下学期感恩母亲节主题班会课件
- 高一信息技术Python编程课程讲解
- 医院行政测试题及答案
- 雨水排放检测管理制度
- 金融行业金融大数据风控模型优化方案
评论
0/150
提交评论