这是算法:
Topologically sort the Vertices of G
Initialize - Single - Source(G,s)
for each vertex u, taken in topologically sorted order
for each vertex v in G.Adjacent[u]
Relax(u,v,w)
答案 0 :(得分:1)
对于每个顶点 u ,您仅迭代遍历 u 的边缘。每个不同的边缘只能访问一次,这就是为什么该算法需要O(V + E)时间的原因。
这假设您使用的是图形表示形式(如邻接列表,而不是矩阵),该表示形式允许快速访问每个顶点的相邻边。拓扑排序也需要这样做。