图的一些总结

Floyd:求多源、无负权边的最短路。用矩阵记录图。时效性较差,时间复杂度O(V^3)。

 Dijkstra:求单源、无负权的最短路。时效性较好,时间复杂度O(V^2)。可以用堆优化。

 Bellman-Ford:求单源最短路,可以判断有无负权回路(若有,则不存在最短路),时效性较好,时间复杂度O(VE)。

SPFA:是Bellman-Ford的队列优化,时效性相对好,时间复杂度O(kE)。(k<<V)。

宽搜:求单源无权最短路。矩阵记录法时间复杂度O(V^2);边表记录法时间复杂度O(kE)。


 稠密图单源无负权最短路:Dijkstra。


稠密图单源有负权最短路:SPFA。

 稀疏图单源最短路:SPFA或Bellman-Ford。


 多源无负权最短路:Floyd。

 多源无权最短路:宽搜。




从竞赛的角度来说的话,bellman-Ford时间复杂度太高,SPFA虽然很快但是不稳定,Dijstra+堆是最稳定的但是编程复杂度太高。一般竞赛时为追求稳定使用最后者,平时SPFA表现极好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值