问题标签 [priority-queue]
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.
winapi - PostMessage 优先?
是否可以优先处理使用PostMessage
(或任何其他相关方法)发送的消息?
例如, IIRCWM_PAINT
消息仅在队列中没有其他消息时才被处理。是否可以使用自定义消息实现类似的行为?
如果我使用WM_PAINT
特殊参数将自定义消息传递到窗口(我控制 WndProc),它会有类似的行为吗?
java - 具有固定大小的 Java PriorityQueue
我正在计算大量可能的算法组合。为了对这些组合进行排序,我用双倍值对它们进行评分,并将它们存储在 PriorityQueue 中。目前,该队列中有大约 200k 个项目,这非常占用内存。实际上,我只需要说列表中所有项目中最好的 1000 个或 100 个。所以我刚开始问自己是否有办法在 Java 中拥有一个固定大小的优先级队列。我应该这样做:该项目是否比已存储的项目之一更好?如果是,则将其插入到相应的位置,然后将评分最低的元素扔掉。
有人有想法吗?再次非常感谢!
马可
java - 是否有一个队列(PriorityQueue)实现也是一个集合?
我正在寻找一个PriorityQueue实现,它也是一个Set。
如果其元素的compareTo
实现必须不要求与equals
.
java有没有这样的实现?
更新:我现在使用 SortedSet 作为内部集合来实现它。所以我只需要实现缺少的方法来满足队列接口。我还忘了提到它也必须是有界队列,因此它具有容量并在达到容量时丢弃集合的最后一个元素。
java - 当元素更改优先级时更新 Java PriorityQueue
我正在尝试使用 aPriorityQueue
来订购使用 a 的对象Comparator
。
这可以很容易地实现,但对象类变量(比较器计算优先级的对象)可能会在初始插入后发生变化。大多数人都提出了删除对象、更新值并重新插入它的简单解决方案,因为这是优先级队列的比较器生效的时候。
除了在 PriorityQueue 周围创建一个包装类之外,还有更好的方法吗?
.net - 为什么 .Net 框架没有优先级队列类?
Stack Overflow 上有一些线程处理在 .Net 和 C# 中实现优先级队列。
我的问题具有更基本的性质:为什么 .Net 框架中没有开箱即用的优先级队列?甚至 C++ 标准库也有一个。
c++ - 如何比较cpp中的队列?
我需要比较 10 个队列的大小并确定最小的一个以插入下一个元素
创建正常的 if 语句将需要很多情况
那么有没有办法使用队列队列或队列数组来做到这一点?
注意:我需要在 2 种情况下基于 2 个不同的事物来比较我的队列 1-基于大小(其中的节点数) 2-基于其中节点中的数据总数(我有一个单独的计算函数)
c# - C# XNA 相当于 Java 的 PriorityQueue 和 Comparator?
我正在一块瓷砖上实施 Dijkstra。我想将所有图块存储在优先队列中,按它们与起始位置的距离排序。在 Java 中,这将类似于:
Queue<Point> pq = new PriorityQueue<Point>(new Comparator() { /* sort by distance from start */ });
C# XNA 中的等价物是什么?C# 有一个PriorityQueue
类,但它只适用于IComparable
对象,而Point
对象不是。
java - 如何在java中使用迭代器?
我已经实现了优先队列接口来制作堆。你能告诉我如何在上面实现一个迭代器吗?给我指点一些适当的教程,我是java新手,在这里的截止日期很短。实际上,我需要一种基于 Object.id 从堆中查找和修改对象的方法。我不在乎它是否是 O(n)。
// 二进制堆类
java - java 的 PriorityQueue 的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
这直接来自Java Docs:
此类及其迭代器实现了 Collection 和 Iterator 接口的所有可选方法。方法 iterator() 中提供的 Iterator 不能保证以任何特定顺序遍历优先级队列的元素。如果您需要有序遍历,请考虑使用 Arrays.sort(pq.toArray())。
所以基本上,我的 PriorityQueue 工作正常,但是使用它自己的内置 toString() 方法将它打印到屏幕上导致我看到这个异常在运行,并且想知道是否有人可以解释为什么它是迭代器提供(并使用内部)不按自然顺序遍历 PriorityQueue?