草庐IT

弗洛伊德(Floyd)算法详解

Floyd算法是解决图论问题的比较经典的算法,用来求解赋权图中每对顶点间的最短距离。当然,在求距离的过程中也可以得到最短距离的路径。这个算法与迪杰斯特拉(Dijkstra)算法相似,他们两个都属于最短路算法,只是Dijkstra算法更适合求图中给定两点的最短距离和路径,求每对顶点之间的距离计算量比较大。不过个人觉得Dijkstra算法更复杂一些,对入门的同学不是很友好。而Floyd算法相对比较简单,算法容易实现,比较适合入门。在讲算法之前,兔兔先介绍一下本文用到的图论的相关基础知识。 基础知识首先是图的表示方法。一般情况下分为关联矩阵、邻接矩阵、邻接表等。其中比较常用的是邻接矩阵,本文先对邻接