配套课件-第4章 第3-4节 图论算法(C++版).pptVIP

  • 5
  • 0
  • 约2.07万字
  • 约 45页
  • 2019-07-17 发布于山东
  • 举报

配套课件-第4章 第3-4节 图论算法(C++版).ppt

第四章 第三节 最短路径算法 如下图所示,我们把边带有权值的图称为带权图。边的权值可以理解为两点之间的距离。一张图中任意两点间会有不同的路径相连。最短路径就是指连接两点的这些路径中最短的一条。      我们有四种算法可以有效地解决最短路径问题。有一点需要读者特别注意:边的权值可以为负。当出现负边权时,有些算法不适用。 一、求出最短路径的长度   以下没有特别说明的话,dis[u][v]表示从u到v最短路径长度,w[u][v]表示连接u,v的边的长度。 1.Floyed-Warshall算法 O(N3)   简称Floyed(弗洛伊德)算法,是最简单的最短路径算法,可以计算图中任意两点间的最短路径。Floyed的时间复杂度是O (N3),适用于出现负边权的情况。 算法描述: 初始化:点u、v如果有边相连,则dis[u][v]=w[u][v]。   如果不相连则dis[u][v]=0x7fffffff For (k = 1; k = n; k++) For (i = 1; i = n; i++) For (j = 1; j = n; j++) If (dis[i][j] dis[i][k] + dis[k][j]) dis[i][j] = dis[i][k] + dis[k][j];

文档评论(0)

1亿VIP精品文档

相关文档