k-d树

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

相关

  • 史奈尔定律当光波从一种介质传播到另一种具有不同折射率的介质时,会发生折射现象,其入射角与折射角之间的关系,可以用斯涅尔定律(Snell's Law)来描述。斯涅尔定律是因荷兰物理学家威理博·
  • 闽南闽南(闽南语:.mw-parser-output .sans-serif{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Lato,"Helvetica Neue",Helvetica,Arial,sans-serif} Bân-l
  • 帽子帽子是戴在头部的服饰,有遮阳、挡雨、防尘、美观、保护头部等用途。以下列出几种常见的帽子款式,详见帽子款式列表.
  • 错位《错位》(Dislocation)是一部于1986年上映的华语喜剧故事片,由黄建新担任执导,由刘子枫、牟红、杨昆、孙飞虎等担任演出。片长85分。本片主角赵书信,是一位曾涉嫌“黑炮事件”的
  • 初学记《初学记》,唐代官修类书,30卷,23部,313个子目。唐代徐坚、张说、韦述等编集。《初学记》原为唐玄宗诸皇子作文时检查事类之用。开元十六年正月,学士徐坚等撰成《初学记》三十卷,
  • 希莉·哈斯特维特希莉·哈斯特维特(英语:Siri Hustvedt,1955年2月19日-)挪威裔美国女作家,保罗·奥斯特的第二任妻子。1955年生于美国明尼苏达州的诺斯菲尔德。父母是挪威到美国的移民,她从小生活在
  • 立方皮米体积(英语:Volume)是物件占有多少空间的量。体积的国际单位制是立方米。一件固体物件的体积是一个数值用以形容该物件在空间所占有的空间。一维空间物件(如线)及二维空间物件(如正
  • 树蛙属 Peters, 1867 Palacky, 1898 () Schlegel, 1826 ()树蛙(学名:Rhacophorus)是无尾目树蛙科下的一个属,全世界大约有80种,大多皮色美丽,并能随环境不同而变色。主要分布在东亚包
  • 安德鲁·普斯德安德鲁·富兰克林·“安迪”·普斯德(英语:Andrew Franklin "Andy" Puzder;1950年7月11日-)是美国连锁餐饮企业CKE Restaurants的首席执行官,拥有华盛顿大学法学院的法学博士学位
  • 欣冈格阿特欣冈格阿特(Hinganghat),是印度马哈拉施特拉邦Wardha县的一个城镇。总人口92325(2001年)。该地2001年总人口92325人,其中男性47921人,女性44404人;0—6岁人口10149人,其中男5399人,女4