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

0 投票
8 回答
3933 浏览

f# - F# 优先级队列

F# 库是否包含优先级队列?其他人可以指出我在 F# 中的优先级队列的实现吗?

0 投票
2 回答
1694 浏览

c++ - 使用优先级队列时出现分段错误

我有一个优先级队列,其中包含名为 AI 的类的元素,需要该队列中的元素,这些元素可能在队列中较低(优先级较低)。所以,我试图弹出一些元素,直到我得到我选择的元素。一旦我得到我选择的元素,我计划将我临时存储的所有元素推送到一个数组中。我有一个循环,对于每次迭代,我都会在队列中进一步检查我弹出的元素是否是我的选择。这样我在临时数组中有更多数据。当我尝试将此临时数组中的数据推回优先级队列时,就会出现问题。优先级的底层容器是一个向量,调试表明问题出在 stl_queue.h 中,行 std::push_heap(c.begin(), c.end(), comp); (c 是向量)

我知道这可能是错误的方法,我可能应该使用构造函数而不是 malloc 并使用 std:list 而不是优先级队列,但是有人可以让我知道这里发生了什么吗?

0 投票
3 回答
362 浏览

scala - 通用优先级队列中的协变和逆变类型

我试图在 Scala 中实现一个在类型上参数化的通用数据类型T,它应该是Ordered[T]. 具体来说,它是 Sleator & Tarjan 的倾斜堆优先级队列的持久版本。在根据此处和 Odersky-Spoon-Venners 中的说明添加了许多复杂的类型参数声明后,在测试/调试实际功能之前,我遇到了一个编译器错误。

下面是我的代码的简化版本。

这给出了以下错误:

我已经尝试了声明的几种变体delMin,但无济于事。我想我理解这个问题(方法+需要订购保证),但我应该把它放在哪里?有没有办法声明delMin为返回SkewHeap[T]而不是SkewHeap[U]

0 投票
1 回答
936 浏览

go - 我的 Priority Queue 的 Pop 方法有什么问题?

基于 Rob Pike 的负载均衡器演示,我实现了自己的优先级队列,但是我的 Pop 方法不对,谁能告诉我哪里出了问题?

编辑:除了 cthom06 指出的方式之外,解决此问题的另一种方法是创建一个指针数组,如下所示,

0 投票
2 回答
4799 浏览

c++ - C ++向量/优先级队列列表?

为什么 C++ 不允许这样的事情?

我需要有多个优先级队列,其数量将在运行时确定。

这无法编译

std::vector<std::priorityqueue<Class A>>.

有更好的方法吗?

0 投票
10 回答
22443 浏览

java - 我什么时候应该在 PriorityQueue 上使用 TreeMap,反之亦然?

似乎它们都可以让您检索最小值,这是 Prim 算法所需的,并强制我删除并重新插入密钥以更新其值。使用一个比另一个有什么优势,不仅仅是这个例子,而且一般来说?

0 投票
7 回答
21769 浏览

java - 如何使用 ThreadPoolExecutor 和自定义任务实现 PriorityBlockingQueue

我搜索了很多,但找不到解决我的问题的方法。

我有自己的班级,BaseTask使用 aThreadPoolExecutor来处理任务。我想要任务优先级,但是当我尝试使用 a 时,PriorityBlockingQueue我得到ClassCastException了因为ThreadPoolExecutor它将我的任务包装到一个FutureTask对象中。

这显然是有道理的,因为FutureTask没有实现Comparable,但是我将如何继续解决优先级问题?我读过你可以覆盖newTaskFor()in ThreadPoolExecutor,但我似乎根本找不到这种方法......?

我们欢迎所有的建议!

一些帮助的代码:

在我的BaseTask课上,我有

BaseFutureTask课堂上

BaseThreadPoolExecutor类中,我覆盖了 3 个submit方法......这个类中的构造函数被调用,但没有一个submit方法

0 投票
1 回答
507 浏览

java - 使用 IntentService 进行优先网络连接

我一直想知道是否可以使用 anIntentService来做一些网络,同时保持未决意图队列的优先级。我的目标是能够在后台下载一些图像,在需要时添加更多(发送另一个Intent),并在必要时能够重置队列(最好使用特定的 Intent)。这一切都是可能的,IntentServie但是当我发送“停止”Intent时,它需要作为队列中的下一个项目进行处理,而不是现在的最后一个。

编辑

对于那些感兴趣的人,我已经获取了 AOSP 代码IntentService并对其进行了修改以满足我的需要。我不能只继承 IntentHandler 的原因ServiceHandlerIntentHandler.

在里面ServiceHandler我有一个新方法:

这个方法被调用onStart而不是仅仅sendMessage

总体而言,代码仍然有限,但我能够将一些消息快速跟踪到队列的前面,这就是我所追求的。

0 投票
3 回答
4259 浏览

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

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

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

我的堆的签名是:

我的优先队列类是:

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

与冲突

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

完整的编译器错误:

0 投票
1 回答
1678 浏览

c# - 调度程序与多线程

根据具有长时间运行计算的单线程应用程序MSDN 示例,有可能仅在 1 个线程中创建响应式 GUI。感谢Dispatcher对象,因为我们可以设置工作项的优先级。

我的问题是,如果可能的话,在后台线程中执行简单任务(假设我们只有 1 个单核 cpu)有什么意义?

谢谢