menu 首页 标签 归档 视频 关于
算法-最近点对问题(暴力破解法)

一言加载中...

通过暴力方式,进行一次比较获取两个点之间的最短距离,思路:

//点对最近问题(暴力破解法)

#include<iostream>
#include<cmath>
using namespace std;

double distance(double x1,double y1,double x2,double y2)
&#123;
    //返回两点之间的距离 
    return sqrt(pow((x1-x2),2)+pow((y1-y2),2));
&#125;

int main()
&#123;
    int n;
    cin>>n;
    double a[n][2];

//init  
    for(int i=0;i<n;i++)
    &#123;
        for(int j=0;j<2;j++)
        &#123;
            cin>>a[i][j];
        &#125;
    &#125;

    double length=distance(a[0][0],a[0][1],a[1][0],a[1][1]);
    cout<<length<<endl;
//find 
    for(int i=0;i<n-1;i++)
    &#123;
        for(int j=i+1;j<n;j++)
        &#123;
            double temp=distance(a[i][0],a[i][1],a[j][0],a[j][1]);
            if(temp<length)
            &#123;
                length=temp;
            &#125;
        &#125;
    &#125;
    cout<<length;
&#125;

过于简单就不做过多的解释,如有问题欢迎私聊!
对于二分法寻找最近点距离,下次再写喽。

2017.10.17
Tony-Chen
Only forget the past ,The furture will not burdon!

写博客不易,请我喝杯咖啡?

评论

arrow_upward