我正在尝试将数组中的所有元素相互比较。我可以用嵌套循环来实现,但这是一个非常低效的算法,我可以看出这不是正确的方法。这是我现在正在做的。
根据下面的答案,我已经更改了此代码,并正在扩展此问题。

// Point from java.awt.Point;
private static void findShortestDistance(Point[] pt) {

  ArrayList<Double> distance = new ArrayList<Double>(1000);

  for(int i=0; i<pt.length; i++) {
    for(int j=i+1; j<pt.length; j++) {
      double tmp = pt[i].distance(pt[j]);
      distance.add(tmp);
    }
  }

  double min = distance.get(0);
  for(Double d : distance) {
    if(d < min) { min = d; }
  }

}

到目前为止,我已经有了这个方法的完整代码。我试图找出给定数组中两点之间的最短距离。

最佳答案

看看维基百科。
http://en.wikipedia.org/wiki/Closest_pair_of_points
这个问题似乎和
Shortest distance between points algorithm

07-24 18:42
查看更多