Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在arraylist中计算最小距离_Java_Arrays_Graph_Multidimensional Array_Adjacency Matrix - Fatal编程技术网

Java 如何在arraylist中计算最小距离

Java 如何在arraylist中计算最小距离,java,arrays,graph,multidimensional-array,adjacency-matrix,Java,Arrays,Graph,Multidimensional Array,Adjacency Matrix,我有一个矩阵,矩阵中的距离是用欧几里德距离计算的。 之后,我必须搜索物体之间的最小距离。但我必须保持目标顶点作为源顶点。我举个例子 P1 P2 P3 P4 0 3,0014 1,1245 1,1000 3,0014 0 3,0571 2,5374 1,1245 3,0571 0 1,0651 1,1000 2,5374 1,0651 0 基于对象P1的最小距离为:P1,P4:110

我有一个矩阵,矩阵中的距离是用欧几里德距离计算的。 之后,我必须搜索物体之间的最小距离。但我必须保持目标顶点作为源顶点。我举个例子

P1      P2      P3      P4      
0       3,0014  1,1245  1,1000  
3,0014  0       3,0571  2,5374  
1,1245  3,0571  0       1,0651  
1,1000  2,5374  1,0651  0   
基于对象P1的最小距离为:P1,P4:11000,P1,P3:11245,P1,P2:30014 但是我必须在对象P1中显示轨迹,轨迹应该是:P1,P4,P4,P3,P3,P2 P1是源顶点,P4是目标顶点,那么P4应该是源顶点,以此类推。 我必须用java代码编写 这是我尝试的方法:

 public LinkedList<EdgeTest> getKruskalEdge(Double kDistance, int index) {
    PriorityQueue<EdgeTest> edge = new PriorityQueue<EdgeTest>();
    if (index == -1) {
        System.out.println("Kosong");
    } else {
        for (int i = 0; i < vertexList.length; i++) {

            if (adjMat[index][i] != -1 && adjMat[index][i] != 0) {
                if (adjMat[index][i] <= kDistance) {




                    edge.add(new EdgeTest(vertexList[index].toString(),
                            vertexList[i].toString(), adjMat[index][i]));


                }
            }


        }
        System.out.println("");
        while (!edge.isEmpty()) {

            insertEdge(edge.remove());

        }
    }
    return kruskalEdge;
}

您的矩阵是如何映射到ArrayList的?我已经尝试过了,但结果是:P1,P4=1.09999999999 P1,P3=1.1244554237496476 P1,P2=1.309809146402635。。它应该是P1,P4;P4,P3;P3,P2