http://yxwang.spaces.live.com/Blog/cns!BD1957499C10CE30!487.entry
非加权无向图Floyd-Warshall算法优化与改进最近反复用到图的(两两结点)最短路径长度算法,对于非加权、无向图的邻接矩阵,采用经典的Floyd-Warshall算法似乎效率不高。
在网上找了点资料,Valerio Schiavoni的这篇日志有点帮助。简要摘录过来,并统一了符号,校正了错误。
以下代码中, int a[i][j]表示从结点i到j的最短路径长度, n为结点总数。
--------------------------------------------------------------------------------
经典实现
--------------------------------------------------------------------------------
第1次优化: 利用矩阵的对称性
--------------------------------------------------------------------------------
第2次优化: 只使用矩阵的下三角部分
--------------------------------------------------------------------------------
第3次优化: 跳过不存在的路径
--------------------------------------------------------------------------------
第4次优化: 避免大量调用数学函数