37得票4回答
最大/最小堆树能够包含重复的值吗?

我想知道最大堆或最小堆树是否允许具有重复的值?我尝试了在线资源,但未能找到相关信息。

13得票2回答
如何在Python中获取最大堆

我在Python中使用了heapq模块,发现无论我是否使用reverse=True,我只能获得最小堆。 即使我使用了reverse=True,我仍然得到了最小的顶部堆。from heapq import * h=[] merge(h,key=lambda e:e[0],reverse=Tr...

12得票1回答
最大堆与最小堆在寻找第k小元素时的区别

我不太明白为什么查找第k小的元素要使用最大堆方法,而查找第k大元素要使用最小堆方法。难道使用最小堆寻找第k小元素不更合理吗?因为最小元素始终在根节点。所以如果我们想找到第三个最小元素,我们只需删除根节点两次,再建立堆,即可得到第三个最小元素。在最大堆中,最小元素不在根节点,那么为什么还要使用最...

8得票1回答
Python:使用最大堆和最小堆查找运行中位数

我正在尝试返回一系列流数据的运行中位数。为此,我使用最大堆(存储系列的下半部分的值)和最小堆(存储系列的上半部分的值)。 特别地,我使用Python(2.0)内置的最小堆数据结构来自heapq模块(https://docs.python.org/2/library/heapq.html)。要...

8得票3回答
C++标准库中是否有最大堆?

我知道 std::priority_queue 类实现了一个小根堆。有没有办法将其用作大根堆?或者有没有其他的大根堆结构?我知道可以使用 std::make_heap() 函数在 std::vector 上使用 lambda 创建自己的大根堆,但是使用诸如 std::pop_heap() 等函...