k-d树

✍ dations ◷ 2025-12-02 11:01:30 #数据结构,树结构

在计算机科学里,-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树的最邻近搜索才可以很好的发挥其作用。不然的话,大部分的点都会被查询,最终算法效率也不会比全体查询一遍要好到哪里去。另外,如果只是需要一个足够快,且不必最优的结果,那么可以考虑使用近似邻近查询的方法。

相关

  • 物理学家物理学家是指受物理学训练、并以探索物质世界的组成和运行规律(即物理学)为目的科学家。研究范畴可细至构成一般物质的微细粒子,大至宇宙的整体,不同的范围都会有相对的专家。对
  • span class=nowrapXeClsub2/sub/span二氯化氙,化学式为XeCl2,它是唯一一种能用化学方法制得的氙氯化物。对氙和氯的混合物微波放电,并在20K下用冷凝阱隔离,可以制得二氯化氙。红外光谱证实,二氯化氙是一种直线型分子
  • 北方工业大学北方工业大学(英语:North China University of Technology),简称:北方工大、NCUT,原名北京冶金机电学院。学校前身是创办于1946年的国立北平高级工业职业学校,以后几经变迁,1978年经
  • 诺布尔诺布尔县(英语:Noble County)是美国奥克拉荷马州中北部的一个县,面积1,923平方公里。根据2010年人口普查,本县共有人口11,561人。本县县治为佩里(英语:Perry, Oklahoma)(Perry)。诺布
  • 第二巡回美国联邦第二巡回上诉法院(英语:United States Court of Appeals for the Second Circuit,案例引用为2d Cir.)是美国的13个联邦上诉法院之一。其司法管辖范围包括康涅狄格州、纽
  • 生粉生粉是中菜,尤其是粤菜常用的食用淀粉,常用的生粉有玉米粉和太白粉(马铃薯粉)等等。生粉可以用来勾芡或上浆,令酱汁更粘稠。亦可以用作腌料,加在肉类食品产生滑润松软的口感。以及
  • 靖江街道靖江街道,中国浙江省杭州市萧山区下辖的一个街道。辖区总面积24平方公里,总人口11万。2009年8月23日,原靖江镇的安澜桥、小石桥、黎明、花神庙、伟南5个社区和雷东、和顺、靖南
  • 耶稣升天主教座堂 (萨图马雷)耶稣升天主教座堂(罗马尼亚语:Catedrala înălţarea Domnului or Catedrala romano-catolică Înălţarea Domnului)是罗马尼亚城市萨图马雷的一座罗马天主教的主教座堂。
  • 弘晓正白旗汉军都统(乾隆五年~七年)怡僖亲王弘晓(满语:ᡥᡡᠩ ᡥᡳᠶᠣᡠ,穆麟德:;1722年5月23日-1778年5月11日)字秀亭,号冰玉道人,爱新觉罗氏,生于康熙六十一年壬寅四月初九日(1722年5月23
  • 中华水韭中华水韭(学名:),又名华水韭,多年生沼泽地植物,植株高约15到30厘米。因其形状像韭菜又多生于沼泽而得名。茎短,肉质,块状,宽度约0.5到1.5厘米。块茎由两道三瓣组成,基部生根。叶细长,聚