Dijkstra's Algorithm
简介
Dijkstra算法可以用于在有向无环图(DAG, Directed Acyclic Graph)中确定从单一源点(single source)出发到其他所有顶点的最短路径。有以下几点需要明确:
- “最短路径”是指沿途相邻两顶点间的权值总和最小的路径。
- 这个“权值总和”也叫距离,用数组d[]表示。对于单一源点s与某一个目的点u,若从s不可达u,则d[u]=正无穷大;若从s可达u,则可能存在多个可达路径,也就是有多个d[u]值,其中最短路径的距离用delta(s, u)表示,则显然有d[u]>=delta(s, u)。
- 所有权值都必须是非负的