【算法导论笔记】单源最短路径

最短路径估计和前驱结点的初始化
INITIALIZE-SINGLE-SOURCE(G, s)
  for each vertex v∈G.V 
  	  v.d = ∞
  	  v.π = NIL
  s.d = 0

 松弛操作
 RELAX(u, v, w)
   if v.d > u.d + w(u, v)
   	  v.d = u.d + w(u, v)
   	  v.π = u

Bellman-Ford算法
BELLMAN-FORD(G, w, s)
  for i=1 to |G.V|-1
  	  for each edge(u, v)∈G.E
  	  	  RELAX(u, v, w)
  for each edge(u, v)∈G.E
  	  if v.d > u.d + w(u, v)
  	  	  return FALSE
  return TRUE

有向无环图的单源最短路径算法
DAG-SHORTEST-PATHS(G, w, s)
  topologically sort the vertices of G
  INITIALIZE-SINGLE-SOURCE(G, s)
  for each vertex u, taken in topologically sorted order
  	  for each vertex v∈G.Adj[u]
  	  	  RELAX(u, v, w)


Dijkstra算法

DIJKSTRA(G, w, s)
  INITIALIZE-SINGLE-SOURCE(G, s)
  S = Empty
  Q = G.V
  while Q ≠ Empty
  	  u = EXTRACT-MIN(Q)
  	  S = S ∪ {u}
  	  for each vertex v∈G.Adj[u]
  	  	  RELAX(u, v, w)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值