dijkstra算法:求单源最短路径,算法内部设有
//记录路径;
int[] path=new int[n];
//记录点是否被访问过;
boolean[] visited=new boolean[n];
//记录开销;
int[] cost=new int[n];
等数组记录,针对下图:
具体代码如下:
import java.util.Stack;
public class ShortestPathDijkstra {
public static void main(String[] args) {
int MAX = Integer.MAX_VALUE; // 无法到达时距离设为 Integer.MAX_VALUE
int[][] matrix={
{0,1,12,MAX,MAX,MAX},
{MAX,0,9,3,MAX,MAX},
{MAX,MAX,0,MAX,5,MAX},
{MAX,MAX,4,0,13,15},
{MAX,MAX,MAX,MAX,0,4},
{MAX,MAX,MAX,MAX,MAX,0}
};
int start = 0,n=matrix.length;