k-d树

✍ dations ◷ 2025-11-23 03:47:32 #数据结构,树结构

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

相关

  • 凡士林凡士林(英语:Vaseline)是一种石油胶(英语:petroleum jelly)(石化制胶状物)的通用商标,同时亦为联合利华所生产的个人清洁用品、除臭用品、体香剂、润肤霜与润滑剂品牌。凡士林的最早
  • 铁匠铁匠,为一种职业,使用钢铁制作物品,工作场称为铁匠铺;产品包括炊具、农具、武器及装饰品等,常见工具包括锤子、锯及钳子等。铁匠制作产品的加工方法包括熔炼、切割、铸造、锻造及
  • 全真道全真道也称全真教,中国道教的重要派别,由王重阳等人创于金熙宗正隆四年(1159)陕西京兆区终南山刘蒋村,世宗大定七年(1167)改以山东宁海军(甯海州)等地为中心。元代,张紫阳一系所创立以
  • 鲁丹期鲁丹期(Rhuddanian)是志留纪的第一个阶段,年代大约位于443.8–440.8百万年前。
  • 南澳县南澳县(邮政式拼音:Namoa)是中国广东省汕头市下辖的一个县,位于粤、闽二省交界海面,是广东省唯一的海岛县,县城为后宅镇。南澳县由南澳岛及周边22个小岛屿组成,北回归线横穿海岛。
  • 董绍基董绍基(1925年-2002年8月),美国实业家。浙江鄞县人。祖籍鄞县茅山乡董家跳村。伯父外交家董显光。父董纯瑶,上海圣约翰大学早期毕业生。弟陆军中将董萍。妻孔令和,是孔子世家大宗
  • 布列塔尼旗帜布列塔尼旗帜由黑白两色组成,设计于1923年,设计时参考了美国国旗和希腊国旗。在过去布列塔尼旗帜曾带有分裂主义含义,但现在布列塔尼旗帜已经不带有政治含义,在布列塔尼地区随处
  • 澳大利亚人报《澳大利亚人报》(英语:The Australian)是澳大利亚销量最高的大报。日报流通量11万6千份,周末版流通量25万5千份。 该报2017年9月推出中文版。《澳大利亚人报》由新闻集团旗下的
  • 王力行王力行(1945年-),出生于四川重庆,台湾知名女作家及出版家,毕业于国立政治大学新闻系。新闻系毕业后,在广播、广告世界中摸索兴趣。她于远见杂志总编辑任内,曾带领该杂志荣获新闻局杂
  • 四角菊石见内文四角菊石(学名:)是生存在白垩纪海洋中的一属菊石。为四角菊石科的模式属。在弛菊石类中属于比较先进的类群,于白垩纪的后半部完全取代了传统的弛菊石类,持续繁衍至白垩纪末