java实现单元最短路径问题
1、问题描述:
给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数。另外,还给定 V 中的一个顶点,称为源。现在我们要计算从源到所有其他各顶点的最短路径长度。这里的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。
2、带权有向图
3、代码
Dijkstra算法
public class Dijkstra {
/*
* max:给出的极大值,表示顶点之间无法到达 dist[]:存储最短路径长度的数组 prve[]:存储当前顶点的前驱顶点
* a[][]:给定测试的邻接矩阵表
*/
private static int max = Integer.MAX_VALUE;
private static int dist[] = new int[10];
private static int prve[] = new int[10];
private static int a[][] = {
{ 0, max, 10, max, 30, 100, 200, max, max, max },
{ max, 0, 5, max, max, max, max, max, max, max },
{ max, max, 0, 50, max,