算法设计与分析课件 18 最短路径—Floyd算法.pptxVIP

  • 3
  • 0
  • 约小于1千字
  • 约 14页
  • 2026-06-10 发布于山东
  • 举报

算法设计与分析课件 18 最短路径—Floyd算法.pptx

算法设计与分析本节要点CONTENTS最短路径—Floyd算法

最短路径Dijkstra算法Floyd算法SPFA算法Bellman-Ford算法

最短路径Dijkstra算法用于求从源点到其他各个节点的最短路径。如果求解任意两个节点之间的最短路径,则需要以每个节点为源点,重复调用n次Dijkstra算法。其实完全没必要这么麻烦,Floyd算法可用于求解任意两个节点间的最短路径。Floyd算法又被称为插点法,其算法核心是在节点i与节点j之间插入节点k,看看是否可以缩短节点i与节点j之间的距离(松弛操作)。

最短路径算法设计(1)数据结构。邻接矩阵G[][]存储图,dist[i][j]记录从节点i到节点j的最短路径长度,p[i][j]记录节点i到节点j的最短路径上节点j的直接前驱。(2)初始化。dist[i][j]=G[i][j],如果节点i到节点j有边相连,p[i][j]=i,否则p[i][j]=?1。

最短路径(3)插点。其实就是在节点i、j之间插入节点k,看是否可以缩短节点i、j之间的距离(松弛操作)。如果dist[i][j]dist[i][k]+dist[k][j],则dist[i][j]=dist[i][k]+dist[k][j],并记录节点j的前驱,p[i][j]=p[k][j]。

最短路径有一个景点地图,求各个节点之间的最短路径。数据结构1

文档评论(0)

1亿VIP精品文档

相关文档