当前位置: 首页 > news >正文

KD-Tree

简介

KD-Tree 用来组织表示K维空间点集合。这是一种带有约束条件的二分查找树,KD树对于邻域搜索十分有用。KD-Tree 在除了叶子结点外,每一维分裂都是在某一个维度进行分裂。

Screenshot 2025-09-09 at 10.15.36 PM

 

 

建树算法流程

KD-Node

  • value
  • split,分裂维度编号
  • left,KD-Node left
  • right,KD-Node right

ff

 

流程:

  1. 确定split分割维度。计算该数据集在每个分割维度的方差,挑选最大的,表示分割的比较好
  2. 确定Node-Data,该维度的值进行排序,选择中位数。
  3. 确定左、右子空间。左子空间 <= node.value, 右子空间 > node.value

 

查找算法:

流程:

  1. 从root出发,DFS搜索直到叶子节点,同时在stack中存储顺序访问的节点
  2. 如果搜索到叶子结点,则设为最邻进
  3. 然后通过stack回溯,如果当前点的距离比邻近点近,则更新最邻近点,然后检查最近的点到目标点的距离为圆是否和父结点的面相交,如果相交则搜索父节点的另一侧。如果不相交则继续回溯。
  4. 直到root

 

参考

https://blog.csdn.net/qq_33287871/article/details/107332728/

https://baike.baidu.com/item/kd-tree/2302515

http://www.hskmm.com/?act=detail&tid=400

相关文章:

  • yyjj
  • 今日随笔
  • 摆放类状压DP基础题
  • 使用 Visual Studio 2022 创建动态库和静态库 - Invinc
  • 软件
  • Laravel PHP 忘记密码如何重置(创建新管理员账号)
  • 打工人必看!昆工MBA“项目管理”杀疯了
  • 第一章 逻辑代数基础 - Wisdom
  • DVectorT虐哭ListT
  • 201912_BUUCTF_Base64隐写
  • 软考达人-案例分析
  • kettle插件-sqlserver cdc插件,从sqlserver获取实时数据so easy,早早下班
  • golang netpoll 底层原理
  • manim如何按绝对时间管理动画
  • MATLAB R2025a安装教程和资源(中文版)
  • Xmanager Power Suite使用教程 - Invinc
  • try hack me.md
  • Snapshot-based State Replication 基于快照的状态复制网络框架,快照同步
  • Transformer通俗讲解
  • Ubuntu 安装微信
  • Ubuntu 安装截图软件 flameshot
  • Kali连接postgreSQL失败(已解决)
  • 主存储器和cpu的链接
  • 7. LangChain4j + 记忆缓存详细说明 - Rainbow
  • 英语_阅读_water protection team_待读
  • 滑动窗口(不与单调队列结合的总结)
  • Codeforces Round 1048 (Div 2)
  • 9.9未完成
  • 9.9日总结
  • 202205_宁波市赛_Cr4ck2