📄 closestpoints.cpp
字号:
#include <iostream.h>
#include <math.h>
void sort(int n,int *x,int *y)
{
int t,k;
for(int i=0;i<n-1;i++)
for(int j=0;j<n-1-i;j++)
{
if(x[j]>x[j+1])
{
t=x[j];
k=y[j];
x[j]=x[j+1];
y[j]=y[j+1];
x[j+1]=t;
y[j+1]=k;
}
}
}
int min(int d1,int d2)
{
if(d1>d2)
return d2;
else
return d1;
}
int ClosestPoint(int a,int b,int *x,int *y)
{
int d,d1,d2;
if (b-a==1)
{
d=(int)sqrt((y[b]-y[a])*(y[b]-y[a])+(x[b]-x[a])*(x[b]-x[a]));
d1=ClosestPoint(a,(a+b)/2,x,y);
d2=ClosestPoint((a+b)/2+1,b,x,y);
d=min(d1,d2);
return d;
}
}
void main()
{
int n;
cout<<"请输入点的个数:";
cin>>n;
int *x=new int [n];
int *y=new int [n];
for(int i=0;i<n;i++)
{
cout<<"点"<<i+1<<":";
cin>>x[i]>>y[i];
}
sort(n,x,y);
int temp=ClosestPoint(1,n,x,y);
cout<<"最近对的距离为:"<<temp<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -