迪杰斯特拉算法.pptVIP

  • 75
  • 0
  • 约 15页
  • 2016-12-05 发布于北京
  • 举报
迪杰斯特拉算法

迪杰斯特拉算法实现 第九组罗凯耀王鸣 迪杰斯特拉--算法思想 设给定源点为Vs,S为已求得最短路径的终点集,开始时令S={Vs} 。当求得第一条最短路径(Vs ,Vi)后,S为{Vs,Vi} 。根据以下结论可求下一条最短路径。 设下一条最短路径终点为Vj ,则Vj只有: ◆ 源点到终点有直接的弧Vs,Vj; ◆ 从Vs 出发到Vj 的这条最短路径所经过的所有中间顶点必定在S中。即只有这条最短路径的最后一条弧才是从S内某个顶点连接到S外的顶点Vj 。 若定义一个数组dist[n],其每个dist[i]分量保存从Vs 出发中间只经过集合S中的顶点而到达Vi的所有路径中长度最小的路径长度值,则下一条最短路径的终点Vj必定是不在S中且值最小的顶点,即: dist[i]=Min{ dist[k]| Vk∈V-S } 利用上述公式就可以依次找出下一条最短路径。 迪杰斯特拉算法 --数据组织 迪杰斯特拉算法—步骤 ① 令S={Vs} ,用带权的邻接矩阵表示有向图,对图中每个顶点Vi按以下原则置初值: ② 选择一个顶点Vj ,使得: Distance[j]=Min{ Distance[k]| Vk∈V-S } Vj就是求得的下一条

文档评论(0)

1亿VIP精品文档

相关文档