数据结构12讲解.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构12讲解

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * n, the number of vertices e, the number of edges The queue ready_to_process has at most n vertices A Greedy Algorithm: Shortest Paths The Problem: Given a directed graph in which each edge has a nonnegative weight or cost, find a path of least total weight from a given vertex, called the source, to every other vertex in the graph. Shortest Paths 最短路径问题是图的又一个比较典型的应用问题。 例如,某一地区的一个公路网,给定了该网内的n个城市以及这些城市之间的相通公路的距离,能否找到城市A到城市B之间一条距离最近的通路呢?如果将城市用点表示,城市间的公路用边表示,公路的长度作为边的权值,那么,这个问题就可归结为在网图中,求点A到点B的所有路径中,边的权值之和最短的那一条路径。这条路径就是两点之间的最短路径。 Shortest Paths 在非网图中,最短路径是指两点之间经历的边数最少的路径。 对于网来说,两个顶点之间的路径长度是路径中“弧的权值之和”。则当两个顶点之间存在多条路径时,其中必然存在一条“最短路径”,即路径中弧的权值和取最小值的那条路径。 Shortest Paths 考虑到交通图的有向性,我们将讨论带权有向图,并称路径中的第一个顶点为“源点”,路径中的最后一个顶点为“终点”。 以下讨论两种最常见的路径问题。 1、求从某个源点到其余各点的最短路径; 2、 每一对顶点之间的最短路径。 Shortest Paths 算法的基本思想: 依最短路径长度递增的次序,求得各条路径。 假设图中所示为从源点到其余各点之间的最 短路径,则在这些路径中,必然存在一条长度最 短者。 Shortest Paths 路径长度最短的最短路径的特点: 在这条路径上,必定只含一条(权值最小)弧,由此,只要在所有以源点出发的弧中查找权值最小者。 长度次短的路径可能有两种情况: 它可能是从源点直接到该点的路径; 也可能是,从源点经过顶点v1,再到达该顶点。 其余最短路径的特点: 它或者是直接从源点到该点(只含一条弧); 或者是,从源点经过已求得最短路径的顶点,再到达该顶点。 Shortest Paths 假设Dist[k]表示当前所求得的从源点到顶点k的最短路径 则一般情况下, Dist[k]= 源点到顶点k的弧上的权值 或者= 源点到其它顶点的路径长度 + 其它顶点到顶点k的弧上的权值 Ideas of the algorithm (Dijkstra): enumerate the shortest paths from the source to other vertices in increasing order. Among the edges starting from 0, (0,4) has the smallest weight, so (0,4) is the shortest path from 0 to 4. Next shortest path starting from 0: it either is an edge (0,v), or a path (0,4,v). So, among those paths (0,x), (0,4,x) choose the smallest one. Finding a shortest path Keep a set S of vertices whose closest distances to the source, vertex 0, are known and add one vertex to S at each stage. Maintain a table distance that gives, for each vertex v, the distance from 0 to v along a path all of

文档评论(0)

2299972 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档