图---Dijstra

来源:互联网 发布:淘宝外卖在哪里找 编辑:程序博客网 时间:2024/06/05 08:32

求单源最短路径用得最多的算法应该就是Dijstra算法了,但是该算法有一个缺点就是不能处理负权,如果遇到负权大家可以参考后面介绍的BellMan Ford算法进行处理。

下面介绍下Dijstra算法的主要步骤:

1. 初始化集合U,该集合表示已经入选最小的节点集合

2. 初始化D,该数组表示源点s到该点的最小距离,没有直接相连则视为无穷大

3. 选出距离源点最小距离的点w

4. 对直接与w点相连的点进行处理,D[v] ← min(D[v], D[w] + A[w][v]):即对与w点直接相连的点,如果存在一条更短路劲达到该点,则刷新该点的D值。

 

Dijkstra(s, A, D) U = {s};for each vertex vD[v] ← A[s][v]while U ≠ VSelect vertex w ∈ V-U with minimum D[w]U ← U ∪ {w}for each vertex v adjacent to wD[v] ← min(D[v], D[w] + A[w][v])


 

0 0
原创粉丝点击