网站大量收购闲置独家精品文档,联系QQ:2885784924

数据结构课件-8-KD树.pptx

数据结构课件-8-KD树.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

数据结构计算机领域本科教育教学改革试点工作计划(“101计划”)研究成果俞勇、张铭、陈越、韩文弢上海交通大学、北京大学、浙江大学、清华大学101

12.8KD树第12章高级查找戴波电子科技大学

12.8.1KD树的定义12.8.2KD树的建立12.8.3KD树的查找12.8.4KD树的插入12.8.5KD树删除12.8.6KD树应用12.8.7KD树小结12.8.8KD树作业

12.8.1KD树的定义12.8.1KD树的定义数据结构KD树(k-dimensionaltree),是用来分割k维数据空间的数据结构,常用来作多维空间的关键数据的有哪些信誉好的足球投注网站。KD树是每个结点均为k维数值点的二叉树,其上的每个结点代表一个超平面(Rn空间中的某个超平面是该空间内的一个n-1维的仿射子空间。n-1维仿射子空间即n-1维子空间的一个平移),该超平面垂直于当前划分维度的坐标轴,在该维度上将空间划分为两部分,一部分在其左子树,另一部分在其右子树。即若当前结点的划分维度为t,其左子树上所有点在t维的坐标值均小于当前值,右子树上所有点在t维的坐标值均大于等于当前值,本定义对其任意子结点均成立。

12.8.2KD树的建立12.8.2KD树的建立数据结构KD树是一颗二叉树,它的每一个结点包括[特征坐标,切分轴,指向左孩结点的指针,指向右孩结点的指针]。其中,特征坐标是线性空间Rn中的一个点(x1,x2,…,xn)。切分轴由一个整数r表示,这里1=r=n,是n维空间中沿第r维进行的一次分割。结点的左分支和右分支分别都是kd树,并且满足:如果y是左分支的一个特征坐标,那么yr=xr,如果z是右分支的一个特征坐标,那么zr=xr。

12.8.2KD树的建立12.8.2KD树的建立数据结构初始化:r=1,读入所有样本数据到S集;只要r=n,则循环下面步骤:1.如果?|S|=1,记录S中唯一的一个点为当前结点的特征数据,并且该结点没有左分支和右分支。其中|S|指集合S中元素的数量。2.如果?|S|1:2.1.将S内所有点按照第r个坐标的大小进行排序;2.2.选出该排列后的中位元素(如果一共有偶数个元素,则选择中位左边或右边的元素,左或右并无影响),作为当前结点的特征坐标,并且记录切分轴r;2.3.将?SL?设为在S中所有排列在中位元素之前的元素;?SR?设为在S中所有排列在中位元素后的元素;2.4.当前结点的左分支设为以?SL???为数据集并且r为切分轴制作出的kd树;当前结点的右分支设为以?SR??为数据集并且r为切分轴制作出的kd树。2.5r=(r+1)%nKD树的建立算法描述

12.8.2KD树的建立12.8.2KD树的建立数据结构例:已知平面8个点的坐标为(2,6)(9,9)(4,7)(1,5)(7,3)(8,2)(3,8)(6,1),请建立KD树。

12.8.2KD树的建立12.8.2KD树的建立数据结构例:已知平面8个点的坐标为(2,6)(9,9)(4,7)(1,5)(7,3)(8,2)(3,8)(6,1),请建立KD树。平面区域划分建立的KD树

12.8.3KD树的查找12.8.3KD树的查找数据结构查找分为查找关键字所在结点和查找最大/最小关键字所在结点。1.查找关键字 根据待查找的数据,从r=1维度依次和根结点的对应维度关键字比较大小,相等则在本结点继续比较r=(r+1)%n的下一个维度的关键字,如果所有维度的关键字都相同,则查找成功。否则,如果待查找数据比当前结点的对应维度关键字小,则转左分支;否则转右分支;然后继续比较r=(r+1)%n的下一个维度的关键字大小。直到找到所有维度相同的关键字,则查找成功,或者找到空指针,则待查找数据不在KD树中,查找失败。平面区域划分建立的KD树例:查找(2,4),(8,2)这两个结点

12.8.3KD树的查找12.8.3KD树的查找数据结构分析:首先查找(2,4)。令r=1,先从KD树的根开始查找,比较第1维的大小:26;则转到左分支继续查找;r=(r+1)%2=2,比较第2维的大小:47,转到左分支继续查找;r=(r+1)%2=1,比较第1维的大小:2=2,相同,则继续比较下一个维度:4!=6,则查找失败。然后查找(8,2)。令r=1,从根比较第一维大小:86,则转到右分支继续查找;r=(r+1)%2=2,比较第二维大小:23,转到左分支继续查找;r=(r+1)%2=1,比较第1维大小:8=8,相同,在这个结点继续比较下一维:2=2,2个维度比较完,所以维度都相等

文档评论(0)

yzs890305 + 关注
实名认证
内容提供者

计算机二级持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年11月02日上传了计算机二级

1亿VIP精品文档

相关文档