找到 510 篇文章 关于算法

基于对应的数据结构

Arnab Chakraborty
更新于 2020年1月3日 05:46:25

322 次查看

总对应和叶子对应是更复杂的对应技术。在这两种技术中,一半的元素位于最小优先队列中,另一半位于最大优先队列中。当元素数量为奇数时,一个元素存储在缓冲区中。此缓冲元素不是任一优先队列的成员。在总对应技术中,最小优先队列中的每个元素 x 都与最大优先队列的唯一元素 y 配对。(x, y) 是一个对应元素对,使得优先级(x)

双端优先队列

Arnab Chakraborty
更新于 2020年1月3日 05:44:35

226 次查看

存在从单端优先队列 (PQ) 数据结构得出高效 DEPQ(双端优先队列)数据结构的一般方法,这些方法还提供了 remove(bNode) 操作的高效实现(此操作从 PQ 中删除节点 bNode)。这些方法中最简单的方法,双结构方法,维护所有 DEPQ 元素的最小优先队列和最大优先队列,并在最小优先队列和最大优先队列的节点之间使用对应指针,这些节点包含相同的元素。图 D 显示了元素 7、8、3、6、5 的双堆结构。对应指针显示... 阅读更多

DEPQ 的通用方法

Arnab Chakraborty
更新于 2020年1月3日 05:43:20

112 次查看

双堆存在从单端优先队列 (PQ) 数据结构得出高效 DEPQ(双端优先队列)数据结构的一般方法,这些方法还提供了 remove(aNode) 操作的高效实现(此操作从 PQ 中删除节点 aNode)。这些方法中最简单的方法,双结构方法,跟踪所有 DEPQ 元素的最小优先队列和最大优先队列,并在最小优先队列和最大优先队列的节点之间使用对应指针,这些节点包含相同的元素。图 A 显示了元素 7、8、3、6、5 的双堆结构。对应... 阅读更多

从 Deaps 中删除最小元素

Arnab Chakraborty
更新于 2020年1月3日 05:40:39

169 次查看

现在我们将解释从 deap 数据结构中删除最小元素的技术。在删除过程中,我们的主要目标是从 deaps 中删除最小值。由于树的高度始终为 log n,因此它消耗时间顺序为 log n。我们可以讨论如下删除操作 -过程 deap_deletion(b[],m): if(m

将元素插入 Deaps

Arnab Chakraborty
更新于 2020年1月3日 05:38:25

457 次查看

要将元素插入 deap 数据结构,我们可能需要如下所示的计算最小值和最大值的程序 -过程 min_value(m): //计算 deap 中的最小值。返回 m-2log2((m-1) ;过程 max_value(m): //计算 deap 中的最大值。返回 m+2log2(m-1);deap 数据结构中的插入操作可以通过以下方式完成 -对于任何堆 b[],我们应该检查 m 是否是 deap 的最大堆内的位置。然后,我们将计算 deap 中的最小值和最大值。现在,比较左子树和右子树的关键值。最后,我们执行... 阅读更多

最小-最大堆

Arnab Chakraborty
更新于 2020年1月3日 05:32:36

6K+ 次查看

最小-最大堆定义为一个完整的二叉树,其中包含交替的最小(或偶数)和最大(或奇数)层。偶数层表示为例如 0、2、4 等,奇数层表示为 1、3、5 等。我们在下文中考虑根元素位于第一层,即 0。最小-最大堆示例最小-最大堆的特征最小-最大堆中的每个节点都与一个数据成员(通常称为键)相关联,其值用于计算最小-最大堆中节点的顺序。根元素是... 阅读更多

数据结构中的 Deaps

Arnab Chakraborty
更新于 2020年1月3日 05:35:07

2K+ 次查看

Deap 定义为一种数据结构,其根节点上没有元素或键值。它是通过实现以下规则形成的 -根节点上没有元素表示根节点为空。deap 的左子树应指示最小堆。deap 的右子树应指示最大堆。因此,可以通过 deap 结构以数学方式提供对以下语句的正确性 -如果某个节点的左子树和右子树非空,并且它们的对应节点可以分别表示为“a”和“b”,则 -a.KeyValue

区间堆操作的复杂度

Arnab Chakraborty
更新于 2020年1月3日 05:27:43

165 次查看

双端优先队列 (DEPQ) 或区间堆具有以下操作 -isEmpty()此函数用于检查 DEPQ 是否为空,如果为空则返回 true。size()此函数用于返回 DEPQ 中存在的元素总数。getMin()此函数用于返回具有最低优先级的元素。getMax()此函数用于返回具有最高优先级的元素。put(z)此函数用于将元素 z 插入 DEPQ。removeMin()此函数用于删除具有最小优先级的元素并返回此元素。removeMax()此函数用于删除具有最高优先级的元素并返回此元素。操作 isEmpty()、size()、getMin() 和 getMax() 消耗 O(1)... 阅读更多

初始化区间堆

Arnab Chakraborty
更新于 2020年1月3日 05:26:34

246 次查看

区间堆与嵌入的最小-最大堆相同,其中每个节点包含两个元素。它被定义为一个完整的二叉树,其中左侧元素小于或等于右侧元素。这两个元素定义一个闭合区间。除根节点外的任何节点表示的区间都是父节点的子区间。左侧的元素表示最小堆。右侧的元素表示最大堆。根据元素数量,允许两种情况 -偶数个元素:在这种情况下,每个节点包含两个元素... 阅读更多

从区间堆中删除最小元素

Arnab Chakraborty
更新于 2020年1月2日 07:55:44

308 次查看

在区间堆中,最小元素是根节点左侧的元素。此元素被删除并返回。为了填充根节点左侧创建的空缺,从最后一个节点删除一个元素并再次插入到根节点中。此元素接下来与下降节点的所有左侧元素依次比较,并且当满足区间堆的所有条件时,该过程终止。如果节点中的左侧元素变得高于右侧元素... 阅读更多

广告