贪心算法实现Dijkstra:
思路以及代码的解析都包含在代码之后,欢迎大家借鉴、指出错误。
package com.zhou.algorithm;
import java.util.Scanner;
public class Dijkstra {
public static int[] dijkstra(int[][] distance,int n,int x){
//记录最短路径顺序的数组
int[] path = new int[n];
//最短路径元素的下标
int pathIndex = 0;
//先将源点放到最短路径顺序数组中
path[pathIndex++] = x;
//d数组存储的是其余的点到源点的距离
int[] d = new int[n];
//代表是否加入顶点集合中,false代表未加入,true代表已经加入了顶点集合中。
boolean[] flag = new boolean[n];
//刚开始顶点集合中只有源点
flag[x-1] = true;
//初始化
for (int i = 0; i < n; i++) {
d[i] = distance[x-1][i];
}
//index为要新加入顶点集合的下标
int index = x-1;
//循环n-1次,将剩下的n-1个顶点加入到顶点集合中
for (int count = 0;count");
}
}
}
}



