社区
数据结构与算法
帖子详情
请教平面离散点集合中到一定点最近的k(给定)个点的算法
lingyun1980
2005-03-07 09:19:45
已知平面离散点集合(点数很大),求到一定点最近的k(给定)个点的算法(有求速度很快)。
...全文
272
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)集成学习方差和偏差模型的偏差...
零基础AI
算法
工程师学习路径与方向选择指南
计算机视觉(Computer Vision, CV)是人工智能的一个重要分支,其目标是赋予计算机“看”和理解图像或视频...计算机视觉的核心任务和技术图像分类 (Image Classification):将输入的图像分配到一个预定义的类别标签。
【万字长文】零基础AI
算法
工程师转型指南:从数学与编程到机器学习,选择你的AI之路!
在此基础上,学习者应**广泛了解AI的主要应用方向**,如计算机视觉(CV)、自然语言处理(NLP)、语音识别、强化学习等,并结合个人兴趣与职业规划**选择一到两个方向进行专项深耕与实践**。持续的项目经验积累、...
计算机需要那些高中数学知识
点
,高中必考数学知识
点
归纳整理
有很多的同学是非常想知道,高中必考数学知识
点
有哪些,小编整理了相关信息,希望会对大家有所帮助!高中数学重难
点
知识
点
高中数学(文)包含5本必修、2本选修,(理)包含5本必修、3本选修,每学期学习两本书。必修一:...
数据结构与
算法
(适合初学者)
指向下个元素 增删快 双向链表 指针域有两个指针,一个指向上个元素,一个指向下个元素 可以从前往后查,也可以从后往前查 循环链表 最后一个元素指向第一个元素 从任意一个元素的位置都能查到全部的数据 ...
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章