狄克斯特拉算法

介绍:

狄克斯特拉算法是用来解决有权图(无负权)的最短路径问题一种有效算法

步骤

1、找出离出发点最近的节点,(从出发点开始
2、更新该节点的到其邻接点的距离
3、重复这个过程,直到对图中的每个节点进行了这样的操作
4、计算最后路径,通过父节点标记出最短路径

总结

1、每次从为标记的节点中选择距离出发点最近的节点,标记,收录到最优路径集合中
2、计算刚加入节点A的邻近节点的B的距离(不包含标记的节点),若(节点的距离+节点A到节点B的距离)<节点B的距离,则更新节点B的距离

注意:狄克斯特拉算法不能用于包含负权边的图

因为狄克斯特拉算法假设对于处理过的节点,没有前往该节点的更短路径,这种假设只有在没有负权边的时候成立。

tip:理解该算法的思路可以参考https://www.bilibili.com/video/BV1zz4y1m7Nq

你可能感兴趣的:(算法)