k-d树

✍ dations ◷ 2025-12-05 17:08:18 #数据结构,树结构

在计算机科学里,-d树( k-维树的缩写)是在维欧几里德空间组织点的数据结构。-d树可以使用在多种应用场合,如多维键值搜索(例:范围搜寻及最邻近搜索)。-d树是空间二分树(Binary space partitioning)的一种特殊情况。

-d树是每个叶子节点都为k维点的二叉树。所有非叶子节点可以视作用一个超平面把空间分割成两个半空间。节点左边的子树代表在超平面左边的点,节点右边的子树代表在超平面右边的点。选择超平面的方法如下:每个节点都与k维中垂直于超平面的那一维有关。因此,如果选择按照x轴划分,所有x值小于指定值的节点都会出现在左子树,所有x值大于指定值的节点都会出现在右子树。这样,超平面可以用该x值来确定,其法线为x轴的单位向量。

有很多种方法可以选择轴垂直分割面( axis-aligned splitting planes ),所以有很多种创建-d树的方法。最典型的方法如下:

这个方法产生一个平衡的-d树。每个叶节点的高度都十分接近。然而,平衡的树不一定对每个应用都是最佳的。

function kdtree ( pointList,  depth){        var  axis := depth mod k;                select median by axis from pointList;                var  node;    node.location := median;    node.leftChild := kdtree(points in pointList before median, depth+1);    node.rightChild := kdtree(points in pointList after median, depth+1);    return node;}

插入元素

移除元素

平衡

在动态插入删除点且不允许预处理插入操作的情况下,一种平衡的方法是使用类似替罪羊树的方法重构整棵树。

最邻近搜索用来找出在树中与输入点最接近的点。

k-d树最邻近搜索的过程如下:


维数灾难让大部分的搜索算法在高纬情况下都显得花哨且不实用。 同样的,在高维空间中,k-d树也不能做很高效的最邻近搜索。一般的准则是:在k维情况下,数据点数目N应当远远大于 2 k {\displaystyle 2^{k}} 时,k-d树的最邻近搜索才可以很好的发挥其作用。不然的话,大部分的点都会被查询,最终算法效率也不会比全体查询一遍要好到哪里去。另外,如果只是需要一个足够快,且不必最优的结果,那么可以考虑使用近似邻近查询的方法。

相关

  • UClsub5/sub五氯化铀是一种无机化合物,化学式为UCl5,有放射性。五氯化铀可以通过四氯化铀在520℃的直接氯化得到:这个反应可逆。三氯化硼和UF5·3SbF5在40℃反应也可得到五氯化铀:五氯化铀
  • 1804年1804年逝世人物列表:1月 - 2月 - 3月 - 4月 - 5月 - 6月 - 7月 - 8月 - 9月 - 10月 - 11月 - 12月
  • 华视新闻杂志本段时间均以二十四小时制东八区时间(UTC+8)为准。《华视新闻杂志》是台湾中华电视公司于1981年1月20日开播的新闻杂志节目,是迄今为止台湾电视史上播出最久的新闻杂志节目。目
  • 詹姆士·布朗小詹姆斯·乔瑟夫·布朗(英语:James Joseph Brown, Jr.,1933年5月3日-2006年12月25日),非洲裔美国歌手,有“灵魂乐教父”之称,被认为对20世纪的流行音乐有至深的影响。詹姆斯·布朗
  • 呼玛河呼玛河原称呼玛尔河,发源于中华人民共和国黑龙江省大兴安岭伊勒呼里山北麓,向西流经塔河县接纳塔河,在呼玛注入中俄界河黑龙江。干流长542千米。流域面积31 197平方千米。河口
  • 郑州铁路局中国铁路郑州局集团有限公司,原称郑州铁路局,是中国国家铁路集团下属公司,受武汉铁路监管局监管。管辖线路主要分布在河南省北部和山西省南部,另外陇海铁路太要站、宁西铁路富水
  • 川东行政区川东行政区是中华人民共和国建国后成立的省级行政区,于1950年至1952年存在。辖区大部分在今重庆市境。1949年12月,西南战役结束,解放军攻占四川全省。由于四川省地域较大,人口近
  • 成都2.5环路成都2.5环路是成都市区内的一条环形公路,位于二环路与三环路之间,由一品天下大街,青羊大道,武阳大道,科园大道,紫瑞大道,火车南站西路,火车南站东路,机场路东沿线,锦绣大道,建材路,建材
  • CYP6G1CYP6G1基因或称为DDT-R是黑腹果蝇()基因组中涉及杀虫剂DDT(双对氯苯基三氯乙烷)抵抗的基因,位于果蝇的2号染色体,编码的蛋白质属于细胞色素P450超家族,可将DDT氧化代谢掉。
  • 八打灵县八打灵县(马来语:Daerah Petaling),是马来西亚雪兰莪州中部的一个县。其面积为484.32平方公里,人口于2010年为1,782,375。该县被雪兰莪州内六个县及吉隆坡环绕,顺时针为鹅唛县、吉