图论中的FLOYD算法,同样是动态规划的简单例子
/**
*
* @author pc
* FLOYD算法 ,n*n的矩阵,对有向图中的边(i,j)长度为l[i][j],若不可达则l[i][j]=9999
*
*/
public class FLOYD {
public static void floyd(int[][] map,int n){
for(int k=0;k<n;k++){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
int temp=map[i][k]+map[k][j];
map[i][j]=map[i][j]<temp?map[i][j]:temp;
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
System.out.print(map[i][j]+" ");
}
System.out.println();
}
}
public static void main(String args[]){
int max=9999;
int[][] map={{0,3,max,max},{max,0,4,5},{max,max,0,max},{max,max,max,0}};
floyd(map,4);
}
}