k-d树

✍ dations ◷ 2025-12-05 23:38:19 #数据结构,树结构

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

相关

  • 逻辑联结词在形式逻辑中,逻辑运算符或逻辑联结词把语句连接成更复杂的复杂语句。例如,假设有两个逻辑命题,分别是“正在下雨”和“我在屋里”,我们可以将它们组成复杂命题“正在下雨,并且我
  • 弗朗兹-乌尔里奇·哈特尔弗朗兹-乌尔里奇·哈特尔(德语:Franz-Ulrich Hartl,1957年3月10日-),德国生物化学家,马克斯·普朗克生化研究所(英语:Max Planck Institute of Biochemistry)的主任。他以其在蛋白质折
  • 地球上元素的丰度化学元素丰度(英语:Abundance of the chemical elements)是在测量上与所有元素相比较所得到含量多寡的比值。丰度可以是质量的比值或是莫耳数(气体的原子数量比值或是分子数量
  • 青铜青铜(英文:Bronze)是纯铜(紫铜)加入锌与镍以外的金属所产生的合金,如加入锡、铅或铝的铜合金,古时青铜器埋在土里后颜色因氧化而青灰,故命名为青铜。与纯铜(红铜)相比,青铜强度高且熔点
  • 罗莎琳·卡特埃莉诺·罗莎琳·史密斯·卡特(Eleanor Rosalynn Smith Carter,1927年8月18日-),美国前总统吉米·卡特妻子、美国前第一夫人。1940年,她的父亲去世,母亲成为裁缝,来帮助支持家庭。19
  • 卢甘斯克人民共和国未受国际普遍承认国家俄罗斯卢布 (常见);乌克兰格里夫纳 (较少见);卢甘斯克人民共和国(俄语:Луганская народная республика,罗马化:Lugansk narodnay
  • 城市形态学城市形态学(英语:urban morphology)是研究人类聚居地的形式及其形成和转化过程的学科。该学科旨在通过研究都市圈、城市、镇或乡村的组成部分的模式以及所有权或管辖权和占有权
  • 加布里埃尔·邓南遮加布里埃尔·邓南遮 (Gabriele d'Annunzio,原名Gaetano Rapagnetta;1863年3月12日-1938年3月1日),意大利诗人、记者、小说家、戏剧家和冒险者。 1889年至1910年期间,在意大利文学界
  • Cinema 4DCinema 4D是一套由德国公司Maxon Computer开发的三维绘图软件,以其高的运算速度和强大的渲染外挂着称。Cinema 4D应用广泛,在广告、电影、工业设计、等方面都有出色的表现,例如
  • 阿瑟·富特阿瑟·富特(英语:Arthur Foote,1853年3月5日-1937年4月4日),美国作曲家,音乐教育家。早年在哈佛大学师从佩因学习,后又到法国进修。回国后担任管风琴师并从事教学。富特是19世纪重要