编写一个简单的程序,实现单源最短路径问题。
package org.csu.shiyan_1;
import java.util.ArrayList;
public class danyuanzuiduanlujing {
public static void main(String[] args) {
int fan = Integer.MAX_VALUE/2;
int [][]a = new int[][]{
{
0,10,fan,30,100},
{
fan,0,50,fan,fan},
{
fan,fan,0,fan,10},
{
fan,fan,20,0,60},
{
fan,fan,fan,fan,0}};
int [][]b = new int[5][5];
ArrayList<Integer>c = new ArrayList<>();
//源点
int v0 = 0;
c.add(v0);
//b的第一行
for(int i = 0;i<b.length;i++){
b[0][i] = a[0][i];
}
int v1 = road_min(b[0],c);
c.add(v1);
int v0_to_v1 = b[0][v1];
for(int i = 0;i<b.length;i++){
b[1][i] = Math.min(a[v1][i]+v0_to_v1,b[0][i]);
}
int v2 = road_min(b[1],c);
c.add(v2);
int v0_to_v2 =