介绍:
狄克斯特拉算法是用来解决有权图(无负权)的最短路径问题一种有效算法
步骤
1、找出离出发点最近的节点,(从出发点开始
2、更新该节点的到其邻接点的距离
3、重复这个过程,直到对图中的每个节点进行了这样的操作
4、计算最后路径,通过父节点标记出最短路径
总结
1、每次从为标记的节点中选择距离出发点最近的节点,标记,收录到最优路径集合中
2、计算刚加入节点A的邻近节点的B的距离(不包含标记的节点),若(节点的距离+节点A到节点B的距离)<节点B的距离,则更新节点B的距离
注意:狄克斯特拉算法不能用于包含负权边的图
因为狄克斯特拉算法假设对于处理过的节点,没有前往该节点的更短路径,这种假设只有在没有负权边的时候成立。