Java无向图距离计算
我将以下矩阵存储在2d int数组结果[]中:Java无向图距离计算,java,Java,我将以下矩阵存储在2d int数组结果[]中: 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 我试图计算是否有任何节点以2的距离连接(它们之间有1个节点,没有直接连接) 到目前为止,我有以下代码: Size是矩阵的大小(n*n),dis是我要查找的距离 for(int row = 0; row < size; row++){ for(int column = 0; column &l
0 1 1 0 0 0
1 0 0 1 0 0
1 0 0 1 1 0
0 1 1 0 0 1
0 0 1 0 0 1
0 0 0 1 1 0
我试图计算是否有任何节点以2的距离连接(它们之间有1个节点,没有直接连接)
到目前为止,我有以下代码:
Size是矩阵的大小(n*n),dis是我要查找的距离
for(int row = 0; row < size; row++){
for(int column = 0; column < size; column++){
if(dis == 2){
if((result[row][column] == dis-1 && result[column][column+1] == 1 && result[row][column+1] == 0)){
if(row != column+1){
result[row][column+dis-1] = dis;
result[column+dis-1][row] = dis;
}
}
}
}
}
for(int row=0;row
但是,如果我尝试将距离更改为3或4,则代码并不总是有效的,也不是通用的。我建议您计算彼此之间有一个跳跃的数字集,以及彼此之间有两个跳跃的节点集,然后返回不在一个跳跃中的两个跳跃的集。为此,我建议Floyd WarshallYou将结果存储在原始数组中?因此,我们可以了解您正在尝试做什么,使用指定的输入,您期望的结果是什么?Floyd Warshall为$O(n^3)$,并找到连通图中所有点之间的最短距离。参见[此处](en.wikipedia.org/Floyd\u-Warshall\u算法)