Dijkstra算法 是一个按长度递增的次序产生最短路径的算法。
假如我们从v0开始求最短路径,首先找到v0到v1的最短路径,当求v0到v2的最短路径时,要比较v0直接到v2的路径权值和v0通过v1到v2的权值,选择较小者为v0到v2的路径,依次类推,从而求得到最后一个点的最短路径
//shortPath[] //保存最短路径
//parent[] //保存前驱结点下标 parent[i]=k,表示结点i的前驱结点为k,即最短路径中k的下一个点为j
public void shortPath_Dijkstra(int start,int shortPath[],int parent[]){
int temp=0;
int shorted[]=new int[MAXVEX]; //用来保存已经加入最短路径的点,shorted[i]=1,表示第i个结点已经加入最短路径
for(int i=0;i