上一篇文章《所有节点对的最短路径问题》中我们介绍到了Floyd-Warshall算法,由于代码较长,没有放到上一篇文章中,我们在这里单独给出Java实现的代码。
import java.util.*;
class Floyd_Warshall
{
static final int MAX = 20; //最大点数
static int[][] W; //权重
static int ver; //点数
static int edge; //边数
static int[][] D; //i到j最小权重和
static int[][] pre; //记录前驱节点
//O(n^3)
static void floyd_warshall(){
initD();
for(int k = 1;k <= ver;k++){
for(int i=1;i <= ver;i++){
for(int j=1;j <= ver;j++){
//防止溢出