找到 210 篇文章,关于算法分析

数据结构中的 B 树删除

Arnab Chakraborty
更新于 2020 年 8 月 11 日 07:31:37

1K+ 次浏览

在这里我们将了解如何从 B 树中删除节点。假设我们有一个如下所示的 B 树:B 树示例 - 删除分为两个部分。首先,我们必须找到元素。该策略类似于查询。现在,对于删除,我们必须注意一些规则。一个节点必须至少有 m/2 个元素。因此,如果我们删除一个元素,并且它剩余的元素少于 m-1 个,那么它将进行自我调整。如果整个节点都被删除,则其子节点将被合并,如果其大小与 m 相同,则将其拆分... 阅读更多

数据结构中的 B 树插入

Arnab Chakraborty
更新于 2020 年 8 月 11 日 07:25:53

701 次浏览

在这里我们将了解如何在 B 树中执行插入操作。假设我们有一个如下所示的 B 树:B 树示例 - 要插入一个元素,其思想与 BST 非常相似,但我们必须遵循一些规则。每个节点有 m 个子节点和 m-1 个元素。如果我们在一个节点中插入一个元素,则有两种情况。如果该节点的元素少于 m-1,则新元素将直接插入到该节点中。如果它有 m-1 个元素,则通过获取所有元素以及将要插入的元素,然后获取... 阅读更多

数据结构中的 B 树查询

Arnab Chakraborty
更新于 2020 年 8 月 11 日 07:27:13

592 次浏览

在这里我们将了解如何在 B 树中执行搜索操作。B 树搜索也称为 B 树查询。假设我们有一个如下所示的 B 树:B 树示例 - 搜索技术与二叉搜索树非常相似。假设我们想从上面的树中搜索 66。因此,我们将从根节点开始,现在 66 大于根节点元素 46。因此,我们将移动到根节点的右子节点。然后右子节点有多个元素。这些元素已排序,它们是 [56, 81]。我们的目标键大于 56,... 阅读更多

数据结构中的区间堆

Arnab Chakraborty
更新于 2020 年 8 月 11 日 07:19:04

1K+ 次浏览

在这里我们将了解什么是区间堆。区间堆是完全二叉树,其中除最后一个节点外,每个节点都包含两个元素。设节点 P 中两个元素的优先级为“a”和“b”。这里我们考虑 a ≤ b。我们说节点 P 表示闭区间 [a, b]。这里 a 是 P 区间的左端点,b 是右端点。[c, d] 包含在区间 [a, b] 中,当且仅当 a ≤ c ≤ d ≤ b。在一个... 阅读更多

数据结构中的最大 WBLT 操作

Arnab Chakraborty
更新于 2020 年 8 月 11 日 07:18:05

163 次浏览

在这里我们将了解不同的最大 WBLT 操作。HBLT 有不同的操作,如插入、删除和初始化。它们与 WBLT 也非常相似。但是,合并操作可以在单个自顶向下的过程中完成。WBLT 可以进行单程合并操作。因为我们可以在向下过程中找到 w 值。我们可以更新 w 值并根据需要交换子树。对于 HBLT,我们无法在向下遍历树的过程中找到 s 值。由于合并可以在单个自顶向下的过程中完成,那么插入和删除... 阅读更多

数据结构中的权重偏左树

Arnab Chakraborty
更新于 2020 年 8 月 11 日 07:15:01

1K+ 次浏览

在这里我们将了解左偏树的另一种变体。在这里,我们将考虑子树中的节点数,而不是从根节点到外部节点的最短路径的长度。在这里,我们将定义节点 x 的权重 w(x),为以 x 为根的子树中的内部节点数。如果 x 是外部节点,则权重为 0。如果 x 是内部节点,则权重比其子节点权重之和多 1。这是一个权重偏左树 (WBLT) 的示例:假设二叉树是... 阅读更多

数据结构中从最大 HBLT 中删除任意元素

Arnab Chakraborty
更新于 2020 年 8 月 11 日 07:13:14

166 次浏览

从最大或最小 HBLT 中删除任意节点不是优先级队列或 HBLT 的标准操作。如果我们想从 HBLT 中删除一个节点,例如 K,我们必须遵循以下规则。将以 K 为根的子树从树中分离,并将其替换为 K 节点子树的合并。更新从 K 到根的路径上的 s 值,并根据需要在这条路径上交换子树以保持 HBLT 的属性。要更新从 K 到根的 s 值,我们需要每个节点的父节点指针。此更新 s 的操作... 阅读更多

数据结构中单个数组中的多个列表

Arnab Chakraborty
更新于 2020 年 8 月 11 日 07:11:51

576 次浏览

当数组存储随时间变化的数据时,数组表示基本上会浪费空间。为了存储一些数据,我们分配了一些足够大的空间来在数组中存储多个值。假设我们使用数组加倍标准来增加数组的大小。假设当前数组大小为 8192。这是满的。因此,我们需要使用数组加倍技术来增加它。因此,新数组的大小将为 16384。然后将旧数组中的 8192 个元素复制到新数组中,然后释放旧数组。现在我们可以意识到,在释放... 阅读更多

数据结构中合并两个最大 HBLT

Arnab Chakraborty
更新于 2020 年 8 月 11 日 07:10:20

232 次浏览

合并策略很容易使用递归来完成。假设 A 和 B 是两个将要合并的 HBLT。如果其中一个为空,则只需将另一个作为最终结果。如果没有空 HBLT,则我们必须比较两个根节点中的元素。具有较大元素的根节点将成为合并后的 HBLT 的根节点。假设 A 具有更大的根节点。并且它的左子树是 L。假设 C 是由 A 的右子树和 HBLT B 合并产生的最大 HBLT。最终的 HBLT 将以 A 为根节点,... 阅读更多

数据结构中从最大 HBLT 中删除最大元素

Arnab Chakraborty
更新于 2020 年 8 月 11 日 07:07:28

136 次浏览

在最大 HBLT 中,根节点位于根节点处。如果删除根节点,则两个最大 HBLT(即左子树和右子树)将被分离。通过再次合并这两个最大 HBLT,我们可以将它们合并成一个。因此,在合并后,所有元素都将存在,除了被删除的那个。

广告