介绍KdTree算法

KdTree是一种用于快速查找k维数据空间的数据结构,它通过二分查找实现高效检索。本文介绍了KdTree的基本原理,以二维数据为例,详细解释了构建过程,包括根据方差和中位数选择分割点,以及查询操作。KdTree适用于需要在高维空间中寻找最近邻的场景。
摘要由CSDN通过智能技术生成

入门,学习KdTree:

   今天因为要看一些代码,所以自己从网上搜了下kdtree得相关内容,今天介绍一下啥是kdtree。

   首先,这是一种分割k维数据空间的数据结构,目的是能够快速查找某个数据,是一种带有约束得二分查找树,能起到一种加速作用。首先插上这张图,一张我看了n多博客都用的经典图:

此图借鉴于右下角得博客,侵权即删。

在此处用最简单得二维数据来介绍,其余同。

假设有6个二维数据点{(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)},数据点 位于二维空间内(如图1中黑点所示)。k-d树算法就是要确定图1中这些分割空间的分割线(多维空间即为分割平面,一般为超平面)。

由于此例简单,数据维度只有2维,所以可以简单地给x,y两个方向轴编号为0,1,也即split={0,1}。

(1)确定split域的首先该取的值。分别计算x,y方向上数据的方差得知x方向上的方差最大,所以split域值首先取0,也就是x轴方向;

(2)确定Node-data的域值。根据x轴方向的值2,5,9,4,8,7排序选出中值为7,所以此点得数据值为(7,2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值