首先他们都是最常见的最短路径算法,但二者不同。迪杰特斯拉算法为单源点到其他点的最短路径,适用于带权图和有向图,而佛洛依德算法是多源点最短路径问题,可适用于带负权图。
他们的实现方法都是将图形抽象为邻接矩阵,并通过比较找出最短路径。
迪杰特斯拉算法采用贪心算法,需要数据结构的支持,借助优先队列实现,而弗洛伊德不用,采用了动态规划思想。
首先他们都是最常见的最短路径算法,但二者不同。迪杰特斯拉算法为单源点到其他点的最短路径,适用于带权图和有向图,而佛洛依德算法是多源点最短路径问题,可适用于带负权图。
他们的实现方法都是将图形抽象为邻接矩阵,并通过比较找出最短路径。
迪杰特斯拉算法采用贪心算法,需要数据结构的支持,借助优先队列实现,而弗洛伊德不用,采用了动态规划思想。