k-d树

✍ dations ◷ 2025-11-08 13:31:39 #数据结构,树结构

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

相关

  • 母乳喂养母乳哺育(Breastfeeding),亦称哺乳、授乳或母乳喂养,指的是女性以乳房喂食婴儿母乳的行为。婴儿有吮吸反射,因此可以吮吸乳房并吞咽母乳,专家建议在出生后一小时即可哺喂母乳,之后
  • 解放日解放日是标记一个地方解放的日期,通常是公众假期。类似独立日。
  • 亞當·斯密亚当·斯密(英语:Adam Smith,1723年6月5日(受洗)(新历6月16日)-1790年7月17日),又译亚当·史密斯、亚当·史密夫,苏格兰哲学家和经济学家,他所著的《国富论》成为了第一本试图阐述欧洲产
  • 诉诸阴谋鬼祟谬误(furtive fallacy)为一种非形式谬误,是断定某些事情一定是某些心怀不轨的团体在背后操作导致。有些鬼祟谬误会宣称一历史事件缺乏详细的证据,就是它背后有阴谋的证据。
  • 宋会要辑稿《宋会要辑稿》是清人徐松自《永乐大典》中辑出,全书八百万言,近五百卷。《宋会要》原本亡佚于明代,然此书大部分幸存于《永乐大典》。清代嘉庆年间,学者徐松命人自《永乐大典》
  • F51ICD-10 第五章:精神和行为障碍(英语:ICD-10 Chapter V: Mental and behavioural disorders#(F10–F19) Mental and behavioural disorders),为世界卫生组织发布的、ICD-10规定的
  • 10号线10号线可以指:
  • destiny (松桥未树单曲)《destiny》为松桥未树的第二张单曲。
  • 小妇人 (1933年电影)《小妇人》(英语:)是一部于1933年上映的美国法典前剧情片。该片由乔治·丘克执导,并由凯瑟琳·赫本、琼·本内特(英语:Joan Bennett)、弗朗西丝·迪伊(英语:Frances Dee)和珍·帕克(英
  • 青山穰青山穰(1965年1月30日-)是日本男性声优。爱知县出生。日本大学艺术学部演剧学科毕业。2015年2016年2017年2018年2019年2020年