社区
数据结构与算法
帖子详情
请教平面离散点集合中到一定点最近的k(给定)个点的算法
lingyun1980
2005-03-07 09:19:45
已知平面离散点集合(点数很大),求到一定点最近的k(给定)个点的算法(有求速度很快)。
...全文
251
6
打赏
收藏
请教平面离散点集合中到一定点最近的k(给定)个点的算法
已知平面离散点集合(点数很大),求到一定点最近的k(给定)个点的算法(有求速度很快)。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gnefuil
2005-03-07
打赏
举报
回复
先建一个k阶Voronoi图,需要O(nlogn)的时间
但每次查询只需要O(logn)的时间
turnerbook
2005-03-07
打赏
举报
回复
先计算所有平面点到给顶点的距离
再对其排序
寻开心
2005-03-07
打赏
举报
回复
这样的算法理论上讲不是最优的
计算出新的点满足条件后是要插入到k个数组的队列当中的,这个插入操作是费时间
可以参考在n个点当中找第k大的点的O(n)算法
然后从中提取距离比它近的点
但是从解决实际问题的角度来说,引入这样的算法本身似乎不值得
turnerbook
2005-03-07
打赏
举报
回复
1 get plan point
2 calculate the distance
3.1 if availabe,inset
.2 else abandon
/////////////////////////////////////////////////////////////
typedef
point(x,y) //平面点
fdpoint(int distance,int amount)//用于保存查找的点,amount表明同等水平的其他点数
end typedef
input
point list[N] //平面点列
point Q0(x0,y0) //给定点
int m //所求的点数
output
//当有点相同水平时按原点列舍取
var note
fdpoint* repoint=new fdpoint(m)
point** spoint=new point*(m)
int n //水平分档数
end var
1 依次从list中取出点Qk(xk,yk)
2 计算l=||QkQ0||
3
.1 if n=0 //这是第一个数据
n=1
repoint[1].distanc=l
repoint[1].amount=1
spoint[i]=&Qk
else
if l<repoint[n].distance //比最后一组距离短
inset1(Qk);
else //l>repoint[f].distance
if mot<m //点不够
inset2(Qk)
else //点已够
寻开心
2005-03-07
打赏
举报
回复
这个问题恐怕是在你的点的管理上吧
如果是散乱点,没有个管理组织方式,计算量怎么都得是O(n)的啊
最近的k个点,建立一个k长度的数组,对最近的k个点做管理才行
如果能够把散乱点分区域管理,可以大大的减少待检测点的数目
lingyun1980
2005-03-07
打赏
举报
回复
Voronoi图我了解不多,但三角网生成中可能要用到上面的算法,
在浙大的一篇关于三角网的论文中提到上面的算法,没有具体讲述
机器学习——分类器
算法
对比(KNN、SVM、朴素贝叶斯、随机森林、Adaboost)(学习笔记)
目录k邻近(KNN)基础
算法
实例优缺
点
代码实现支持向量机(SVM)基础
算法
对偶问题松弛变量核函数代码实现朴素贝叶斯
算法
基本
算法
优
点
代码实现过拟合(Over fitting)以及欠拟合(Under fitting)集成学习方差和偏差模型的偏差...
计算机需要那些高中数学知识
点
,高中必考数学知识
点
归纳整理
有很多的同学是非常想知道,高中必考数学知识
点
有哪些,小编整理了相关信息,希望会对大家有所帮助!高中数学重难
点
知识
点
高中数学(文)包含5本必修、2本选修,(理)包含5本必修、3本选修,每学期学习两本书。必修一:...
数据结构与
算法
(适合初学者)
指向下个元素 增删快 双向链表 指针域有两个指针,一个指向上个元素,一个指向下个元素 可以从前往后查,也可以从后往前查 循环链表 最后一个元素指向第一个元素 从任意一个元素的位置都能查到全部的数据 ...
人群中多看了一眼
中的SPACE为0~5表示六个面,每个数字代表哪一面见图1.LEN为0~2,[LEN][LEN]表示某个面的3*3的9个格子。 类中的方法是根据展开的
平面
设计的,具体的某个面的某个格子由Spacexy[SPACE][LEN][LE...
ACM-必备知识
点
排序
算法
(平方排序
算法
的应用,Shell排序,快速排序,归并排序,时间复杂度下界,三种线性时间排序,外部排序) 数论(整除,
集合
论,关系,素数,进位制,辗转相除,扩展的辗转相除,同余运算,解线性同余方程,...
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章