k-d树

✍ dations ◷ 2025-12-01 09:51:44 #数据结构,树结构

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

相关

  • 金黄葡萄球菌金黄色葡萄球菌(学名:Staphylococcus aureus)为一种革兰氏染色阳性球型细菌。工业上利用金黄色葡萄球菌制备蛋白质A——抗激素化学分析中的细胞壁组成成分。金黄色葡萄球菌在显
  • 约翰·赫歇尔约翰·弗雷德里克·威廉·赫歇尔爵士,第一代从男爵,FRS,KH(英语:Sir John Frederick William Herschel, 1st Baronet,1792年3月7日-1871年5月11日)出生于英国白金汉郡的斯劳,英国天文
  • 印孚瑟斯印孚瑟斯(Infosys Ltd),是一家总部在印度班加罗尔的一家全球信息技术服务公司。这家公司在2011年财富印度500强中列第27名。Infosys在29个国家设有办公室并在印度、美国、中国
  • 天兴县天兴县,台湾明郑时期时的两个县级行政区之一,郑经统治时将县改制为散州,台湾为清朝统治后,原天兴县疆域被分成了台湾府底下的诸罗县与台湾县。另外台南县政府于1983年9月在其底
  • 上蔡县上蔡县位于中华人民共和国河南省中南部,是驻马店市下辖的一个县。目前下辖:蔡都街道、芦岗街道、重阳街道、卧龙街道、黄埠镇、杨集镇、洙湖镇、党店镇、朱里镇、华陂镇、塔桥
  • 白凯南白凯南(1981年8月22日-),中国相声演员,师承冯巩,毕业于中国歌舞团舞蹈艺术学校。曾与贾玲搭档登上央视春晚舞台。
  • 古鲁那纳克古鲁那纳克(旁遮普语:ਗੁਰੂ ਨਾਨਕ;印地语:गुरु नानक देव;乌尔都语:گرونانک‎‎;IAST:Gurū Nānak;印度斯坦语发音:.mw-parser-output .IPA{font-family:"Cha
  • 戴维·李 (物理学家)戴维·莫里斯·李(英语:David Morris Lee, 1931年1月20日-),纽约州拉伊),美国物理学家,1996年,因为发现了在氦-3里的超流动性,与道格拉斯·奥谢罗夫、罗伯特·理查森共同荣获诺贝尔物
  • 李㤝李㤝(810年代?-9世纪),唐朝皇子,是唐宪宗李纯第十六子,生母不详。从其兄唐宣宗李忱生年推断,当在810年后。其父唐宪宗在820年逝世。长庆元年(821年),李㤝(忄充)被兄长唐穆宗封为澶王,李㤝
  • 道卡斯语道卡斯语(Taokas)为台湾西北部平埔族道卡斯族所用的台湾南岛语言,归类在排湾语群下。于2011年2月21日世界母语日联合国教科文组织发表世界各地母语现况报告。在台湾部分,其中道