(1分钟速览)最近邻搜索--激光SLAM常用必杀技

学习kdtree的数据结构,和二叉树的思想大体上算是比较相似的。

参考博客:https://blog.csdn.net/dive_shallow/article/details/113136145

建树,一个递归的操作。

这里的删除操作很好理解,分左子树和右子树两种情况。如果是左子树那么找最大的,如果是右子树,则找最小的。

上面这个例子就是说,当走到(13,10)这个节点以后,本来应该往右子树走的,但是右子树为空,那么就返回到上一层,然后程序结束返回(13,10)。但其实(12,8)才是我们所以得到的解,那么此时我们就以(10.1, 10.1)为圆心,到(13,10)的距离为半径画圆,发现(12,8)在圆内,所以此时对(12,8)进行进一步递归,然后继续求解即可。

下面是kdtree使用替罪羊进行增删改查的学习

博客:https://juejin.cn/post/6844904128150241294

Kdtree不能像平衡二叉树那样进行旋转操作。

我的理解就相当于是一种延时操作。

拍平操作,就是对极度不平衡的部分取出来,然后重新构建该树。

这里对平衡的理解:我的理解就是,如果这颗二叉树平衡了,即左右子树的高度相差在1之内,那么这颗二叉树的查询效率非常高,每次对半查询,那么时间复杂度就是logn。

打上标记,也是一种延时的操作。这部分在ikdtree里面也使用到了。

总结像是心灵鸡汤。结束本篇博客。

针对最近邻搜索,最常用在激光slam中,对点云的最近邻点云进行搜索。Kdtree->替罪羊改善数据结构->ikdtree->ivox,随着这些年的进步,最近邻搜索的数据结构越来越完善,最近邻搜索查询的效率越来越高。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值