资源描述:
《算法设计与分析报告问题详解参考》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用文档1、用Floyd算法求下图每一对顶点之间的最短路径长度,计算矩阵D0,D1,D2和D3,其中Dk[i,j]表示从顶点i到顶点j的不经过编号大于k的顶点的最短路径长度。解在每条边的矩阵行中依次加入顶点1,2,3,判断有无最短路径2、设有n=2k个运动员要进行循环赛,现设计一个满足以下要求的比赛日程表:①每个选手必须与其他n-1名选手比赛各一次;②每个选手一天至多只能赛一次;③循环赛要在最短时间内完成。(1)如果n=2k,循环赛最少需要进行几天;12345678214365873412785643218765
2、56781234658721437856341287654321(2)当n=23=8时,请画出循环赛日程表。解:(1)至少要进行n天(2)如右图:文案大全实用文档3、对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径。解:用V1表示已经找到最短路径的顶点,V2表示与V1中某个顶点相邻接且不在V1中的顶点;E1表示加入到最短路径中的边,E2为与V1中的顶点相邻接且距离最短的路径。步骤V1V2E1E21.{a}{b}{}{ab}2.{a,b}{d}{ab}{bd}3.{a,b,d}{c,f}{ab,bd}{
3、dc,df}4.{a,b,d,c}{f}{ab,bd}{df}5.{a,b,c,d,f}{e}{ab,bd,dc,df}{fe}6.{a,b,c,d,e,f}{g}{ab,bd,dc,df,fe}{eg}7.{a,b,c,d,e,f,g}{h}{ab,bd,dc,df,fe,eg}{gh}8.{a,b,c,d,e,f,g,h}{}{ab,bd,de,df,fe,eg,gh}{}结果:从a到h的最短路径为,权值为18。求所有顶点对之间的最短路径可以使用Dijkstra算法,使其起始节点从a循环到h,每次求起始节点到
4、其他节点的最短路径,最终可以求得所有顶点对之间的最短路径。补充例题:求A到各个顶点的最短路径:文案大全实用文档解:4、用动态规划策略求解最长公共子序列问题:(1)给出计算最优值的递归方程。(2)给定两个序列X={B,C,D,A},Y={A,B,C,B},请采用动态规划策略求出其最长公共子序列,要求给出过程。解:(1)文案大全实用文档(2) Y A B C BX 0 0 0 0B 0 0 1 1 1C 0 0 1 2 2D 0 0122A 01122最长公共子序列:{BC}5、对下图所示的连通网络
5、G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的边。说明该算法的贪心策略和算法的基本思想,并简要分析算法的12345618111715192126679时间复杂度。答:TE={(3,4),(2,3),(1,5),(4,6)(4,5)}贪心策略是每次都在连接两个不同连通分量的边中选权值最小的边。基本思想:首先将图中所有顶点都放到生成树中,然后每次都在连接两个不同连通分量的边中选权值最小的边,将其放入生成树中,直到生成树中有n-1条边。时间复杂度为:O(elo
6、ge)文案大全实用文档6、快速排序算法对下列实例排序,算法执行过程中,写出数组A第一次被分割的过程。A=(65,70,75,80,85,55,50,2)解:第一个分割元素为65(1)(2)(3)(4)(5)(6)(7)(8)ip657075808555502286527580855550703765250808555757046652505585807570465570758085655027、对于下图,写出图着色算法得出一种着色方案的过程。1342解:K←1X[1]←1,返回trueX[2]←1,返回false
7、;X[2]←X[2]+1=2,返回trueX[3]←1,返回false;X[3]←X[3]+1=2,返回false;X[3]←X[3]+1=3,返回trueX[4]←1,返回false;X[4]←X[4]+1=2,返回false;X[4]←X[4]+1=3,返回true找到一个解(1,2,3,3)8、有n个物品,已知n=7,利润为P=(10,5,15,7,6,18,3),重量W=(2,3,5,7,1,4,1),背包容积M=15,物品只能选择全部装入背包或不装入背包,设计贪心算法,并讨论是否可获最优解。解:定义结构
8、体数组G将物品编号、利润、重量作为一个结构体例如G[k]={1,10,2}求最优解按利润/重量的递减序有:{5,6,1,6}、{1,10,2,5}{6,18,4,9/2}、文案大全实用文档{3,15,5,3}、{7,3,1,3}、{2,5,3,5/3}、{4,7,7,1}算法:procedureKNAPSACK(PWMXn)//P(1n)和W(1n)分别含有按P(i)/W