您的位置:首页 > 其它

4.最近距离

2017-03-07 10:56 211 查看
package s5;

import java.util.ArrayList;

import java.util.List;

class MyPoint

{

    private double x;  // 横坐标

    private double y;  // 纵坐标

        

    public MyPoint(double x, double y)

    {

        this.x = x;

        this.y = y;

    }

    

    public static double distance(MyPoint p1, MyPoint p2)

    {

        double dx = p1.x - p2.x;

        double dy = p1.y - p2.y;        

        return Math.sqrt(dx*dx + dy*dy);

    }

    public static double getMinDistance(List<MyPoint> lst)

    {

        double r = Double.MAX_VALUE;//MyPoint.distance(lst.get(0),lst.get(lst.size()));

        /*Double.MAX_VALUE   double类型能取到的最大值*/

        int n = lst.size();

        for(int i=0; i<n; i++)

        {

            for(int j=i+1; j<n; j++)

            {

                MyPoint p1 = lst.get(i);

                MyPoint p2 = lst.get(j);

                

                double d = MyPoint.distance(p1,p2);

                if( d < r ) r=d;

            }

        }

        return r;        

    }

    public static void main(String[] args){  

        List<MyPoint> lis = new ArrayList<MyPoint>();  

        lis.add(new MyPoint(1,2));  

        lis.add(new MyPoint(1,2));  

        lis.add(new MyPoint(2,5));  

        lis.add(new MyPoint(3,9));  

        System.out.println(getMinDistance(lis));  

    }  

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: