迪杰斯特拉算法:使用图的广度优先遍历算法,比如先从G点出发,找到能与G直接连接的顶点,然后才从与G最近的A出发,找到与A相邻的节点。通过比较G到每个顶点的距离大小,筛选出到每个点的最短路径
代码:
/**
* 迪杰斯特拉算法球最短路径问题
*/
public class Dijkstra {
public static void main(String[] args) {
char[] vertexs = {'A','B','C','D','E','F','G'};
final int N = 65535;//N表示两点之间不直连
//邻接矩阵
int[][] weight = {
{N,5,7,N,N,N,2},
{5,N,N,9,N,N,3},
{7,N,N,N,8,N,N},
{N,9,N,N,N,4,N},
{N,N,8,N,N,5,4},
{N,N,N,4,5,N,6},
{2,3,N,N,4,6,N},
};
Graph graph = new Graph(vertexs, weight);
graph.print();
graph.dijkstra(6);
graph.show();
}
}
//图
class Graph{
private char[]