最短路径最常见的两种问题:
1:求某个原点到其余各顶点的最短路径。迪杰斯特拉算法
2:求每一对顶点之间的最短路径。弗洛伊德算法。
迪杰斯特拉算法
首先,找出各点到V1的最短路径,然后把这点加入以求出最短路径的终点集合里,
下面以找出的这个点为中间点,判断V1经过此中间点到其他各点的距离与从V1直接到其他各点的距离,若前者小于后者,则更新V1到其他顶点的距离。找出每一次全部更新完后到V1最近的点,并且加入以求出最短路径的终点集合中。若有N个顶点。则经过N-1次更新后即可得出V1到其余各顶点的距离。
弗洛伊德算法