Java实现dijkstra算法
import java.util.ArrayList;
import java.util.List;
/**
* dijkstra算法思想:
* S集合表示已取得最短路径的点,V-S表示没取得最短路径的点
* 1. 初始 S={0}
* 2. 对于i∈V− S,计算1到 i 的相对 S的最短路,长度 dist [i]
* 3. 选择V− S中 dist 值最小的 j,将 j加入 S,修改V− S中顶点的dist 值.
* 4. 继续上述过程,直到 S=V为止.
*/
public class Dijkstra {
//计算从0点到各点的最小路径
public void dijkstra(int[][] distant, int[] dis, int n) {
for (int i = 0; i < dis.length; i++) {
dis[i] = 0;
}
//s表示已经得到最短路径的点的集合
List<Integer> s = new ArrayList<>();
//剩余的未找到最短路径的点的集合
List<Integer> v = new ArrayList<>();
int min = Integer.MAX_VALUE;
int start = 0, end = 0;
s.add(0