码迷,mamicode.com
首页 > 其他好文 > 详细

KDTree 解析 、构建

时间:2014-05-15 13:05:27      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:style   blog   c   ext   color   http   

其实KDTree 就是一个二叉树,KDTree的创建、查询和二叉树方法都是类似的,只不过在划分二叉树的时候要考虑k维来划分,而二叉树只考虑一维。

定义:

KDTree是每个节点都为k维点的二叉树。所有非叶子节点可以视作用一个超平面把空间分割成两部分。在超平面左边的点代表节点的左子树,在超平面右边的点代表节点的右子树。超平面的方向可以用(n mod k)(n可以认为是数的层级数,比如k为3 ,即x、

、z三维,那么第一次分就是按x值来分(第一层级)、第二次分就按y值分(第二层级)。。。第四层级又按x值来分二叉树等等。。。。来选择:每个节点都与k维中垂直于超平面的那一维有关。因此,如果选择按照x轴划分,所有x值小于指定值的节点都会出现在左子树,所有x值大于指定值的节点都会出现在右子树。这样,超平面可以用该x值来确定,其法矢为x轴的单位向量。以使用在多种应用场合,如多维键值搜索。KDtree是二叉树的一种特殊情况。如下图所示:

bubuko.com,布布扣


第一次划分(红色)把根节点(白色)划分成两个节点,然后它们分别再次被划分(绿色)为两个子节点。最后这四个子节点的每一个都被划分(蓝色)为两个子节点。至此已经不能再被划分,最后得到的八个节点称为叶子节点。


有时间传上具体代码 作参考。。。。



KDTree 解析 、构建,布布扣,bubuko.com

KDTree 解析 、构建

标签:style   blog   c   ext   color   http   

原文地址:http://blog.csdn.net/zhuyingqingfen/article/details/25877063

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!