问题标签 [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 投票
2 回答
133 浏览

algorithm - 这个算法有问题吗?

我对堆排序算法有疑问

我认为我们应该写而不是这个算法:

0 投票
1 回答
818 浏览

data-structures - 如果主要比较恰好相等,如何修改 Min Heap 插入和删除函数以接受第二次比较?

下面我有一个最小堆的标准插入和删除函数,我需要做的是当 T.num 比较恰好相等时为这两个函数添加一个特殊情况,然后我需要比较 T.Letter where首先弹出较低的 Ascii 值。没有评论是标准的插入和删除,添加评论部分将是我添加新功能的尝试,对于我的生活,我不明白为什么它不起作用。

0 投票
3 回答
4259 浏览

c# - C# 泛型:插入 T 作为 where T : IComparable接口冲突

这对 C# 泛型/设计模式大师来说是一个挑战。

我正在尝试实现一个通用堆,然后是一个使用该堆的优先级队列。

我的堆的签名是:

我的优先队列类是:

但是这样做时,编译器(有理由)抱怨 ICompareble 没有实现 ICompareble 接口,因此

与冲突

你能做些什么来解决这个问题?!

完整的编译器错误:

0 投票
1 回答
1784 浏览

java - Java中Python的heapq等价物是什么?

我想知道是否有任何可用于 Java 的 api,就像 Python 中的 heapq 一样。

0 投票
1 回答
110 浏览

c++ - 如何编写模板?

我需要编写一个包含具有 2 个数据结构的数据的节点的模板:一个映射和一个最小堆,其中都有相同的节点,并且每 2 个相同的节点都连接。问题是我需要堆知道例如 heapify 的节点字段,我不知道这样做的正确方法是什么,朋友?节点中的公共字段?在堆内写节点?使用 getter 和 setter?感谢你的帮助。

0 投票
1 回答
2414 浏览

matlab - Matlab中的堆排序

大家好。我试图在 Matlab 中编写堆排序算法。它不工作。堆构建良好。填充排序的向量不起作用。这是代码,谢谢!

0 投票
2 回答
1830 浏览

c# - Binary Heap vs (new) B-Heap:应该在 CLR/.NET 中实现,在哪里实现?

下面的文章讨论了另一种堆结构,该结构考虑到大多数服务器都是虚拟化的,因此大部分内存被分页到磁盘。

http://queue.acm.org/detail.cfm?id=1814327

.NET 开发人员能否(或应该)实现 B 堆数据结构,以便在同一个虚拟内存页面中维护父子关系?这将如何或在哪里实施?

澄清
换句话说,.NET 中是否需要这种类型的数据结构作为原始类型?确实,它应该在 CLR 或 ap/invoke 中本地实现。

当服务器管理员在虚拟机中部署我的 .NET 应用程序时,这种二进制堆优化是否有意义?如果是这样,什么时候有意义?(对象数量等)

0 投票
2 回答
4027 浏览

python - 最小堆是,但是在python中定义了最大堆模块吗?

可能重复:
我在 Python 中使用什么来实现最大堆?

Python 在 heapq 模块中实现了一个最小堆。但是,如果想要一个最大堆,是否必须从头开始构建?

0 投票
8 回答
86933 浏览

python - 如何让 heapq 评估特定属性的堆?

我希望拥有一堆对象,而不仅仅是数字。它们将具有堆可以排序的整数属性。在 python 中使用堆的最简单方法是 heapq,但是在使用 heapq 时如何告诉它按特定属性排序?

0 投票
7 回答
10434 浏览

optimization - 具有查找功能的优先级队列 - 最快的实现

我正在考虑实现一个带有附加要求的优先级队列,一个查找/搜索功能,它将判断一个项目是否在队列中的任何位置。所以函数将是:插入、删除和查找。

我不确定我应该使用堆还是自平衡二叉搜索树。看起来 PQ 通常是用堆实现的,但我想知道使用二叉搜索树是否有任何优势,因为我也需要那个 find 函数。

此外,平均而言,我会做更多的插入而不是删除。我也在考虑一个d-ary heap。基本上,每一秒都很重要。

谢谢!