图的最短路径
高德地图相信大家一定都用过,每当我们输入一个目的地时,系统总是会帮助我们寻找一条最近的路。我们知道出发地到目的地可能有很多条路可以选择,而高德地图是怎样做到为我们选择更近的路呢?这一节的内容,我们就会来讨论关于图的最短路径的问题。
在计算机里,我们用有权图来表示城市的路网,其中每个节点代表一个地点,每条边代表从一个地方到另一个地方的距离,数据结构我们使用邻接矩阵的形式。
计算最短路径分成两种情况,一种是一次计算所有点对的最短路径,就是下面我们要讲到的弗洛伊德算法;另一种是单源最短路径,也就是计算某一个节点到其他所有节点的最短距离,后面的迪克斯特拉算法采用的就是这种方式。
弗洛伊德算法
从出发地到目的地的过程中,我们并不是一下子就到达目的地,而是要经过很多的中转站来帮助我们一步一步地到达目的地</