算法实习分析报告.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
普里姆(Prim)算法: 假设N=(V,{E})是连通网,V={V1,V2,…,Vn}是网的顶点集合,{E}是N上最小生成树中边的集合。引入顶点集合U和边的集合TE,U的初试状态为{V1},它存放的是当前所得到的(还未完成的)最小代价生成树上所有顶点,TE的初始状态为{}。在Prim算法的每一步,都从所有的边{(u,v), u?U, v ?V}中找出所有代价最小的边(u,v),同时将v 并入U,(u,v)并入集合TE,直到U=V为止。此时TE中必有n-1条边,则T=(V,{TE})为N的最小生成树。 克鲁斯卡尔(Kruskal)算法: 假设G=(V,{E})是一个连通的无向图,其中V={1,2,…,n},引入辅助集合T,来存放当前所形成的最小生成树的所有边,其初始状态为空, Kruskal算法是逐步给T添加不和T中的边构成回路的当前最小代价边。 具体步骤: 1、初始化T={ }; 2、当T的边小于n-1时,做如下工作; 3、从E(G)中选取代价最小的边(v,u)并删除之; 4、若(v,u)不和T中的边一起构成回路,则将边(v,u)并入T中。 5、循环2~4步,直到T中所有顶点都在同一个连通图上为止。 拓扑排序的计算机实现: 方法:采用邻接表作为有向图的存储结构,且在头结点中增加一个有效 顶点的入度,入度为零的顶点既为滑有前趋的顶点,删除顶点及 弧可以使入度减1。 为避免重复检测入度为零的顶点,可另设一链表将所有入度为零 的顶点链结到一起,每当输出便删除,反之,当有新的入度为零的顶 点则插入,这相当于一个栈。 算法: 1、查邻接表中入度为零的顶点,并进栈; 2、当栈非空时,进行拓扑排序; (1) 输出栈顶的顶点Vj并退栈; (2) 输出栈顶的顶点Vj的直接后继Vk(k=1,2,…),将Vk的入度 减1,并将入度为0的顶点进栈。 (3)若栈空时输出的顶点数不足AOV-网中顶点数n,则说明有 向图中存在有向环,否则拓扑排序完毕。 Status TopologicalSort(ALGraph G) { FindInDegree(G,indegree); InitStack(S); for(i=0;iG.Vexnum;++i) if(!indegree(i)) push(S,i); count=0; if(!StachEmpty(s)){ pop(S,i); printf(i,G.vertices(i),data); count++; for(p=G.vertices[i].firstarc; p ; p=p-nextarc){ k=p-adjvex; if(!(--indegree(k))) push(S,K); } } if(countG.vexnum) return ERROR; else return OK; } 迪杰斯拉特(Dijkstra)算法: 该算法提出了一个按路径递增的顺序产生最短路径的算法。首先引入一个辅助向量D,它的分量D(i)表示当前所有找到的从始点V到每个终点Vi的最短路径的长度。其初态为:若从V到Vi有弧,则D(i)为弧上权,否则为无穷大;显然,长度为 D(j)=Min{D(i)| Vi? V} 的路径是从V出发的最短一条路径,此路径为(V, Vj )。 网络的可靠性 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 A公司是全球依靠的互联网解决方案提供商,也是2010年世博会的高级赞助商。它将提供先进的网络协作技术,展示其”智能+互联“的生活概念,同时为参观者提供高品质的个人体验和互动,以”信息通信,尽情城市梦想”为主题贯穿。借助奇幻的剧场大屏幕和特效,展

文档评论(0)

2226657222 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档