社区
数据结构与算法
帖子详情
请教平面离散点集合中到一定点最近的k(给定)个点的算法
lingyun1980
2005-03-07 09:19:45
已知平面离散点集合(点数很大),求到一定点最近的k(给定)个点的算法(有求速度很快)。
...全文
278
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图我了解不多,但三角网生成中可能要用到上面的算法,
在浙大的一篇关于三角网的论文中提到上面的算法,没有具体讲述
离散
数学图论知识总结
这篇博客是对
离散
数学中图论知识的全面总结,包括图的基本定义、重要
算法
如Havel-Hakimi
算法
,深入探讨了各种图的性质,如完全图、二部图和树,并详细阐述了最短路径、周游问题、
平面
图和图的染色等概念,还介绍了网络最大流问题的Dinic
算法
。
【C++】pcl库中的k-d tree和八叉树
算法
本文深入探讨了
点
云数据处理的核心问题,即建立
离散
点
间的拓扑关系,实现基于邻域关系的快速查找。通过介绍k-dtree和八叉树
算法
,以及在PCL库中的应用实例,详细讲解了如何在大规模高维数据空间中进行快速邻域搜索。
K-d Tree与八叉树(1)
K-dTree是一种在计算机科学中用于组织k维空间
点
集合
的数据结构,特别适用于近邻和范围搜索。它通过选择方差最大的维度进行空间划分,以实现高效查找。在
点
云数据处理中,K-dTree用于建立
点
间的拓扑关系,支持K领域搜索、半径搜索和K近邻搜索等邻域查找方法。,
PCL--kd-tree
点
云数据处理核心是建立
离散
点
拓扑关系,实现邻域快速查找。Kd-Tree是对K维空间数据
点
划分的数据结构,本质为平衡二叉树,用于多维空间关键数据搜索。本文介绍了Kd-Tree的构建流程,并通过二维数据
点
实例进行说明,还提及PCL中的Kd-Tree。
三维
点
云处理-KDTree和Octree
本文介绍了
点
云数据处理中的核心问题,包括如何通过KD-Tree和Octree建立
离散
点
间的拓扑关系,以及这两种数据结构在高维空间中的应用,重
点
讲解了KD-Tree的构建原理、递归划分过程和Octree的构建步骤,以及它们在近邻搜索中的作用。
数据结构与算法
33,026
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章