k-d树

✍ dations ◷ 2025-04-26 02:01:52 #数据结构,树结构

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

相关

  • 罗伯特·波义耳罗伯特·波义耳(英语:Robert Boyle,1627年1月25日-1691年12月30日),又译波意耳,爱尔兰自然哲学家,炼金术师,在化学和物理学研究上都有杰出贡献。虽然他的化学研究仍然带有炼金术色彩,
  • 路易二世(口吃者)路易二世 (法语:Louis II le Bègue,846年11月1日-879年4月10日)是法兰克帝国皇帝(常等同于神圣罗马帝国皇帝)兼西法兰克王国国王(常等同于法国国王),查理二世(即秃头查理)和妻子
  • 巴格纳尼安德烈亚·巴尔尼亚尼(意大利语:Andrea Bargnani,1985年10月26日-),生于意大利罗马,意大利职业篮球运动员,现效力于西班牙篮球甲级联赛和欧洲篮球联赛巴斯科尼亚(英语:Saski Baskonia)
  • 黑色直升机黑色直升机是美国一则介于都市传说和阴谋论之间的传言故事,类似黑衣人概念,其版本已经多不胜数同时真假难分,但不可否认在美国形成一种流行文化和俚语。现在公众媒体或名人有时
  • 海南藏族自治州海南藏族自治州(藏语:.mw-parser-output .uchen{font-family:"Qomolangma-Dunhuang","Qomolangma-Uchen Sarchen","Qomolangma-Uchen Sarchung","Qomolangma-Uchen Suring","Q
  • 歌手 (第一季)《歌手》第一季,可能指以下电视节目中的一部:
  • 德赛节德赛节(尼泊尔语:दशैं Daśãi;又作बडादशैं Baḍādaśãi;或बिजया दशमी,Bijayā Daśamī)是尼泊尔的传统节日之一。德赛节是尼泊尔最重要的节日,时长两周,敬
  • 日耳曼欧洲日耳曼欧洲(英语:Germanic-speaking Europe)是今日使用着日耳曼语言的欧洲地区。超过2亿欧洲人(约30%)的母语是日耳曼语言。同时,全球有5.15亿人的母语是日耳曼语言(6.87%)。主要人口
  • 中国原子能科学研究院中国原子能科学研究院简称原子能院,代号401所,位于中华人民共和国北京市房山区新镇街道,是中国核科学技术的发源地和国防核科研、核能开发研究和核基础科研基地。 和中国国家原
  • 草堂街道草堂街道,是中华人民共和国四川省成都市青羊区下辖的一个乡镇级行政单位。2019年12月,青羊区调整部分街道行政区划。将光华街道青华社区和清康社区二环路中心线以东、浣花社区