shortest path of all vertex pairs

- repeated square, O(n^3*lgn), preceding m-1 edges + weight of one more edge. shortest path is choice of k with minimum weight of L(m)

l(m, i, j) = min(l(m-1, i, k) + w(k, j)), 1=<k<=n, 

L(1) = W

L(m) is, 



n-1<2m<2n+1



- Floyd-Warshall O(n^3)

d(i,j) = min(d(k-1, i, j), d(k-1, i, k) + d(k-1, k, j)

d(i,j) = w(i,j) if k = 0


- Johnson for sparse graph, O(VElgV)

add a start vertex, s, and edges to each vertices. w(s,v)=0

run Bellman-Ford from s,

set h(v) = d(s,v) for each vertex

set w'(u,v) = w(u,v) + h(u) - h(v) for each vertex to make it non-negative

run Dijkstra on each vertex to compute d'(u,v)

d(u,v) = d'(u,v) + h(v) - h(u)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值