算法实验(四)Closet-Points Problem
来源:互联网 发布:社交网络电影讲的什么 编辑:程序博客网 时间:2024/04/28 12:05
#include "stdafx.h"
#include "point.h"
#include <queue>
#include <iostream.h>
#include<list>
#define numof_points 3
using namespace std;
bool operator <(point a,point b)
{return (a.x<b.x);}
int search(vector<point> &a,int left,int right )
{
if (left==right)
return 100000;
if (right-left==1)
return (a[right].x-a[left].x)*(a[right].x-a[left].x)+(a[right].y-a[left].y)*(a[right].y-a[left].y)
;
int h=search(a, left,(left+ right)/2 );
int k=search(a, (left+ right)/2+1,right );
int p=h<k?h:k;
priority_queue <point> tt;
vector <point> ll;
/* for (int i=0;i<numof_points;i++)
{
d.push_back(heap.top());
heap.pop();
*/
for (int s=left;s<=right;s++)//选出长条之间的点
{
if (abs(a[s].x-a[(left+ right)/2].x)<=p)
{
a[s].swap();//对y坐标排序
tt.push(a[s]);
}
}
while(!tt.empty())
{
ll.push_back(tt.top());
tt.pop();
}
for (int ii=0;ii<ll.size(); ll[ii].swap(),ii++)
for (int iii=ii+1;iii<ll.size();iii++)
if (ll[ii].x-ll[iii].x>p)
{
ll[ii].swap();
break;
}
else if ( (ll[ii].x-ll[iii].x)*(ll[ii].x-ll[iii].x)+(ll[ii].y-ll[iii].y)*(ll[ii].y-ll[iii].y)<p
)
p=(ll[ii].x-ll[iii].x)*(ll[ii].x-ll[iii].x)+(ll[ii].y-ll[iii].y)*(ll[ii].y-ll[iii].y);
return p;
}
int main(int argc, char* argv[])
{
priority_queue<point > heap;
for(int i=0;i<numof_points;i++)
{
cout<<"input point "<<i<<endl ;
point pp;
cin>>pp.x;
cin>>pp.y;
pp.no=i;
heap.push(pp);
}
vector <point> d;
for (i=0;i<numof_points;i++)
{
d.push_back(heap.top());
heap.pop();
}
int mindis=search(d,0,d.size()-1);
cout<<mindis<<endl;
return 0;
- 算法实验(四)Closet-Points Problem
- POJ 1470 Closet Conmon Ancestors(LCA离线算法)
- POJ 1470 Closet Conmon Ancestors(LCA在线算法)
- 《算法分析与设计》之Closest Pair of Points Problem(最近点对问题)d
- pthread 简要使用指南(四) Cancellation Points
- 《数据结构》实验四【BF算法】
- 《数据结构》实验四【KMP算法】
- 操作系统实验四 银行家算法
- 汇编实验(四)
- 实验四 动态分区分配算法
- 实验三 区域四连通填充算法
- 数据结构与算法·实验四
- 操作系统实验四 页面置换算法(fifo 算法代码------页面置换代码集合)
- 算法分析与设计实验四 密码算法
- 第五周实验(四)
- 第八周实验(四)
- Oracle恢复实验(四)
- Chisel实验笔记(四)
- 用awk下载YouTube视频
- SEO过程中10个常见的错误
- 用 C# 开发 SQL Server 2005 的自定义聚合函数
- Hashtable
- asp和asp.net共享session解决办法
- 算法实验(四)Closet-Points Problem
- JAVA设计模式(四)
- PB是如何生成NK.bin的?
- SQL SERVER日志传送
- Server Application Unavailable 错误解决
- 软件工程实践
- "Programming Microsoft DirectShow for Digital Video and Television"中简介的翻译收
- php简单防刷计数器
- WM_COPYDATA 进程间传递参数的问题