问题标签 [max-heap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
data-structures - 判断二叉树是否为最大堆
我正在编写一个函数来确定给定的二叉树是否是最大堆。如果二叉树只有一个节点(根),它会被认为是有效的最大堆吗?
algorithm - 第 k 个最小元素的最大堆与最小堆
我无法理解为什么寻找第 k 个最小元素的解决方案使用最大堆方法。对于第 k 个最大的元素,采用最小堆方法。使用 min heap 查找第 k 个最小元素不是更有意义吗,因为最小元素将始终是根元素?因此,如果我们想找到第三小的元素,那么我们只需删除根 2 次,构建堆,就可以得到第三小的元素。在最大堆中,最小的不在根,那么为什么使用它更好呢?对数组中的升序或降序进行排序也是如此。我看到大多数人使用最大堆来提升。
java - Max Heap MaxHeapify Java 未完成
当需要订购超过 2 个数字时,MaxHeapify 的构造函数出现问题。单步执行代码,它适用于前几个,然后在没有正确排序数字的情况下继续。我不确定为什么这不起作用,任何关于我似乎在这里混淆的变量或比较的帮助将不胜感激。
java - java: 无法推断 MaxHeap<> 的类型参数
只是通过堆来遇到一些问题。我根据我正在使用的接口限制了界限,并且我正在尝试访问一个有效添加堆的构造函数,以证明与通过插入添加堆相比,时间复杂度降低了。换句话说,我需要这个构造函数才能工作,但驱动程序不允许我将 MaxHeapInterface 对象初始化为整数。有什么想法吗?
}
这是我的驱动程序,不幸的是未完成
}
这是我的界面
arrays - 在最大堆中找到最小元素的最佳算法是什么?
在最大堆中找到最小元素的最佳算法(就时间复杂度而言)是什么?
java - 有没有办法在我的代码中修复我的 Max heapify
问题是我正在尝试修复最大 heapify,但由于错误不断发生,它无法正常工作。我一直在关注几本书的伪代码,但仍然显示错误。我正在尝试通过使用to exchangeA[i]
来交换to 但它却给出了错误A[largest]
=
我期待它运行,但我得到一个错误
如果可以,请帮忙。
algorithm - 是否可以在 O(n) 步骤中从 Max-Heap 构造二叉搜索树?
我认为这是不可能的,因为如果确实如此,人们会构建最大堆,然后用它来构建 BST,我认为情况并非如此。
请给出一个证明的答案。
java - 如何在最大堆上修复我的 remove(Comparable e) 方法?
我正在尝试删除(Comparable e)对象说remove(2),但是当我尝试删除它时,它会删除堆中不正确的节点,而不是我想要删除的节点。
这就是输出的样子。
移除 Redwoods NP 之前的堆:
移除 Redwoods NP 后:
预期的
我的代码
我的 Add(Comparable e) 代码方法
java - 需要帮助计算 MaxHeap 中的交换次数
我目前正在开发一个必须创建最大堆的项目。我目前正在使用我的教科书版本的堆,它看起来像:
我是否应该在多个地方计算掉期并打印总金额,如果是,我应该在哪里计算它们?我之前曾尝试仅在 add 方法中枚举 swaps++,但我认为这不是正确的做法。