问题标签 [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.

0 投票
4 回答
948 浏览

algorithm - 这个递归算法的大 O

我做了以下涉及二进制堆结构的算法:

该算法所做的基本上是遍历给定其根的二叉堆,以查找并存储保存最小值(即与根的值匹配的值)的节点。

现在,我无法以大 O 表示法计算算法的运行时间。我感到困惑的原因是因为用于遍历每个节点的左右子节点的递归。

所有操作都在恒定时间内运行O(1),除了concat。但是我该如何计算这种递归解决方案的运行时间呢?

0 投票
2 回答
2097 浏览

c++ - 最小二进制堆问题

我需要有关此 minheap 代码的帮助:

好吧,代码几乎做对了所有事情,除了当它弹出屏幕上的最后一个元素时,它会打印一个随机数。你怎么看?

谢谢!

0 投票
8 回答
76335 浏览

algorithm - 搜索堆中的元素

我记得堆可用于搜索元素是否在其中,时间复杂度为 O(logN)。但突然我无法得到细节。我只能找到getmin delete add等。

有人可以给个提示吗?

0 投票
3 回答
1950 浏览

c++ - 动态内存分配中使用的堆和数据结构之间有什么联系?

可能重复:
为什么两个不同的概念都称为“堆”?

我用谷歌搜索,但找不到这个问题的答案;动态内存分配中使用的堆和数据结构之间有什么联系?堆上的内存是否以类似于堆数据结构的方式组织?如果是这样,这似乎很奇怪,因为获取内存应该是随机访问 AFAIK(即 O(1)),但是从堆中查找项目并不是在恒定时间内完成的。

那么,这只是堆的重载含义,可以这么说,还是有某种联系?

0 投票
2 回答
3642 浏览

sorting - 需要堆排序功能说明

有人能清楚地解释一下堆排序的这些功能是如何工作的吗?

0 投票
17 回答
201010 浏览

python - 我在 Python 中使用什么来实现最大堆?

Python 包含用于最小堆的 heapq 模块,但我需要一个最大堆。我应该在 Python 中使用什么来实现最大堆?

0 投票
7 回答
54329 浏览

algorithm - 如何使用堆在线性时间内找到数字的中位数?

维基百科说:

选择算法:查找最小值、最大值、最小值和最大值、中值,甚至第 k 个最大元素都可以使用堆在线性时间内完成。

它所说的只是它可以完成,而不是如何完成。

你能给我一些关于如何使用堆来完成这件事的开始吗?

0 投票
2 回答
41617 浏览

c++ - 有没有一种简单的方法可以在 C++ 中创建最小堆?

我对 C++ 很陌生,我想知道是否有办法从标准库中用 C++ 创建一个最小堆。

0 投票
7 回答
4767 浏览

java - 为什么 Java 使用堆来分配内存?

我刚刚在一本 java 书中读到这个语句,说 java 中的对象驻留在堆上。使用堆是因为它是存储数据和快速检索数据的最佳方式吗?

我只知道数据结构是初学者。我的意思是为什么不堆叠或其他东西?

0 投票
4 回答
3043 浏览

c++ - C++ STL make_heap 和 pop_heap 不工作

我需要使用堆,所以我搜索了 STL,但它似乎不起作用,我写了一些代码来解释我的意思:

这就是我得到的:

所以它不能作为堆工作,因为向量上的最大元素没有被正确返回。

还是我做错了什么?