弗洛伊德算法-这是一个求顶点到所有点的最短路径的算法
这个算法的核心思路就是通过3层for循环,找出以k为中间结点,i到j最小值
这个也很好理解
//弗洛伊德算法
public void floyd() {
int len = 0;//变量保存距离
//对中间顶点的遍历,k就是中间顶点的下标
for (int k = 0; k < dis.length; k++) {
//从i顶点出发
for (int i = 0; i < dis.length; i++) {
//到达j结点
for (int j = 0; j < dis.length; j++) {
len = dis[i][k] + dis[k][j];//=>求出从i顶点出发,经过k中间顶点,到达j顶点的距离
//小于直连的值
if (len < dis[i][j]) {//如果len小于dis[i][j]距离
dis[i][j] = len;//更新len
pre[i][j] = k;//更新中间结点
}
}
}
}
}