迪杰斯特拉(Dijkstra)算法及弗洛伊德(Floyd)算法详解

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37618760/article/details/82049797

1.迪杰斯特拉算法:

        我们先用二维数组e存储定点之间边的关系,举个例子:

           

    Dijkstra算法是求一个点到各个顶点的最短路径,也叫“单源最短路径”,我们先用一个一维数组dis存储1号顶点到其余各个顶点的距离,dis数组中的值称为最短路程的“估计值”,接下来比如说我们发现dis[3](1到3的路程)大于dis[2]+e[2][3],因此要把dis[3]更新为10,这就是松弛。至于剩下的2,3,4,5,6结点,也执行类似的过程。

 

2.弗洛伊德算法                       Bellman-Ford算法

解决含负全边的带权有向图的单源最短路径问题,不能处理带负权边的无向图

 用一句话概况就是从i号顶点到j号顶点只经过前k号点的最短路程,其实是一种动态规划的思想。

猜你喜欢

转载自blog.csdn.net/qq_37618760/article/details/82049797