您的位置:首页 > 其它

最短路-Floyd算法和Dijkstra算法

2015-08-19 23:58 211 查看
两者在负权问题上不是很好,最好只处理正值,Dijkstra算法对负权毫无办法,但是Floyd算法不能处理出现负环的东西。。。

Dijkstra算法的话,为了方便,我认为从i到i点不可达;百部百科解释挺好,那个堆优化挺好的

Floyd算法百部百科也不错,都是老算法了,哪都有资料

博客园这位筒子的写得很好 /article/4883156.html

Mathematica下的代码【我也觉得mathematica写很诡异。。。】

Input:
tuer = {{INF, 7, INF, 5, INF, INF, INF}, {7, INF, 8, 9, 7, INF, INF}, {INF, 8, INF, INF, 5, INF, INF}, {5, 9, INF, INF, 15, 6, INF}, {INF, 7, 5, 15, INF, 8, 9}, {INF, INF, INF, 6, 8, INF, 11}, {INF, INF, INF, INF, 9, 11, INF}}
Floyd[tuer, 7]

During evaluation of Input:
{{0,7,15,5,14,11,22},{7,0,8,9,7,15,16},{15,8,0,17,5,13,14},{5,9,17,0,14,6,17},{14,7,5,14,0,8,9},{11,15,13,6,8,0,11},{22,16,14,17,9,11,0}}

Out:
{{-1, -1, 2, -1, 2, 4, 6}, {-1, -1, -1, -1, -1, 4,
5}, {2, -1, -1, 2, -1, 5, 5}, {-1, -1, 2, -1, 6, -1, 6}, {2, -1, -1,
6, -1, -1, -1}, {4, 4, 5, -1, -1, -1, -1}, {6, 5, 5,
6, -1, -1, -1}}


示例
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: