当前位置: 首页 > 编程笔记 >

数据结构中的R *树

赵镜
2023-03-14
本文向大家介绍数据结构中的R *树,包括了数据结构中的R *树的使用技巧和注意事项,需要的朋友参考一下

基本概念

在数据处理的情况下,R *树被定义为为索引空间信息而实现的R树的变体。

R *树比标准R树的建造成本稍高,因为可能需要重新插入数据。但是生成的树通常具有更好的查询性能。与标准R树相同,它可以存储点和空间数据。R *树的概念由Norbert Beckmann,Hans-Peter Kriegel,Ralf Schneider和Bernhard Seeger于1990年提出。

R *树和R树之间的区别

R * -Tree通过重复插入来构造。该树几乎没有重叠(即几乎没有重叠),因此查询性能良好。覆盖和重叠的最小化对于R树的性能非常重要。在数据插入或查询时,重叠的含义是需要扩展树的一个以上分支(由于将数据划分在可能重叠的区域中的方式)。最小化的覆盖范围可增强修剪性能,从而允许将整个页面频繁排除在搜索范围之外,尤其是对于负范围查询而言。R * -tree尝试减少两者,既实现了修订后的节点拆分算法的集合,又实现了在节点溢出时强制重新插入的概念。该概念基于以下观察结果:R树结构很容易受到其条目插入顺序的影响,因此,插入构建(而非批量加载)的结构可能不是最优的。条目的删除和重新插入使他们可以“找到”树中比实际位置更合适的位置。

算法和复杂度

    list-paddingleft-2">
  • R *树实现与用于查询和删除操作的常规R树类似的算法。

  • 插入时,R *树将实施组合策略。对于叶节点,重叠最小化,而对于内部节点,扩大和面积最小化。

  • 分割时,R *树实现拓扑分割,该拓扑根据周长选择分割轴,然后使重叠最小化。

  • 除了增强的拆分策略外,R *树还尝试通过将对象和子树重新插入到树中来跳过拆分,这受到平衡B树的概念的启发。

因此,最坏情况的查询和删除复杂度类似于R-Tree。R *树的插入策略的O(M log M)比R树的线性拆分策略(O(M))更复杂,但比二次拆分策略(O(M 2))复杂。)用于M个对象的页面大小,并且对总复杂度影响很小。总插入复杂度仍可与R树媲美:重新插入会影响树的最大一个分支,因此会影响O(log n)重新插入,这与对常规R树执行除法相当。因此,总的来说,R *树的复杂性与常规R树的相似。

 类似资料:
  • 我正在尝试将一个旧的个人Java项目转换为Rust,作为一种学习体验。基本数据结构如下所示: 有一个主要的。有作者列表和书籍列表 每个作者都有一份他/她写过的书的清单 每本书都有作者的参考资料 在Java程序中,我决定程序中的每本书(“霍比特人”)不应该存在多个对象。如果一本新书(可能通过用户输入)进入系统,我要做的第一件事是测试它是否已经在,然后用

  • 主要内容:树的结点,子树和空树,结点的度和层次,有序树和无序树,森林,树的表示方法,总结之前介绍的所有的 数据结构都是 线性存储结构。本章所介绍的树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。                                                                          (A)                                                          

  • 本文向大家介绍数据结构中的四叉树,包括了数据结构中的四叉树的使用技巧和注意事项,需要的朋友参考一下 四叉树是被实现以有效地存储二维空间上的点的数据的树。在此树中,每个节点最多具有四个子节点。 我们可以从二维区域构建四叉树,实现以下步骤 当前的二维空间分为四个框。 如果盒子中包含一个或多个点,则构建一个子对象,在其中存储盒子的二维空间。 如果一个盒子不包含任何点,则不要为其建立子对象。 对每个孩子执

  • 到目前为止,我们已经讨论了为了实现文件系统而需要存在于硬盘上的数据结构。 在这里,我们将了解要实现文件系统需要存在于内存中的数据结构。 内存数据结构用于文件系统管理以及通过缓存提高性能。 该信息在安装时间加载并在弹出时丢弃。 1. 内存安装表 内存中安装表包含正在安装到系统的所有设备的列表。 每当连接维护到设备时,其输入将在安装表中完成。 2. 内存目录结构缓存 这是CPU最近访问的目录列表。列表

  • 有多种磁盘数据结构用于实现文件系统。 该结构可能会因操作系统而异。 1. 引导控制块 启动控制块包含从该卷启动操作系统所需的所有信息。 它在UNIX文件系统中被称为引导块。 在NTFS中,它被称为分区引导扇区。 2. 卷控制块 卷控制会阻止有关该音量的所有信息,如块的数量,每个块的大小,分区表,指向空闲块和空闲FCB块的指针。 在UNIX文件系统中,它被称为超级块。 在NTFS中,此信息存储在主文

  • 世间任何文档,都是相似的 如何描述一个文档 抽象的看,任何一个文档都可以下列结构来描述 文档级属性 { # ZDocMetas 标题 作者 子标题 创建日期 指定样式表 … } 标题 # ZDocNode.depth=0 … 一块内容 … # ZDocN