在这里,我们将了解 R 树数据结构。R 树用于高效地存储特殊数据索引。这种结构对于保存特殊数据查询和存储非常有用。R 树有一些现实生活中的应用,例如:多维信息的索引;游戏数据的处理;地理空间坐标的保存;虚拟地图的实现。下面是一个 R 树的例子。相应的 R 树如下所示:R 树的特性:R 树由单个根节点、内部节点和叶节点组成;根节点指向特殊域中最大的区域;父节点包含子节点,其中子节点完全重叠…… 阅读更多
在这里,我们将了解 B 树。B 树是一种专门的 m 叉搜索树,广泛用于磁盘访问。m 阶 B 树最多可以有 m-1 个键和 m 个子节点。它可以在单个节点中存储大量元素,因此高度相对较小。这是 B 树的一大优势。B 树具有 m 叉树的所有属性,还有一些其他属性:B 树中的每个节点最多包含 m 个子节点;除根节点和叶节点外,每个节点至少包含 m/2 个子节点;根节点至少必须有两个…… 阅读更多
在本节中,我们将了解 Robin Hood 哈希方案。这种哈希是开放寻址技术之一。它尝试通过使用更公平的冲突解决策略来均衡元素的搜索时间。当我们尝试插入元素 x 到位置 xi 时,如果位置 xi 已经存在元素 y,yj = xi,那么两个元素中较新的必须移动。因此,如果 i ≤ j,我们将尝试将 x 插入到位置 xi+1、xi+2 等。否则,我们将 x 存储在…… 阅读更多
在本节中,我们将了解与开放寻址哈希相关的 Brent 方法。此方法是一种启发式方法。它试图最小化在哈希表中成功搜索的平均时间。此方法最初应用于双重哈希技术,但它可以用于任何开放寻址技术,例如线性探测和二次探测。存储在开放寻址哈希表中的元素 x 的年龄是 i 的最小值,这样 x 就被放置在 A[xi] 中。Brent 方法试图最小化所有元素的总年龄。如果我们插入一个元素 x,…… 阅读更多