问题标签 [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.
c++ - 自定义类上的 STL 优先级队列
我很难让我的优先级队列识别它应该排序的参数。我在自定义类中重载了小于运算符,但它似乎没有使用它。以下是相关代码:
节点.h
节点.cpp
getTotalCost() 返回一个整数
主文件
我错过了什么和/或做错了什么?
java - 并发队列 - 一般问题(描述和用法)
我在理解并发队列的概念时遇到了一些麻烦。我理解队列是一个先进先出或先到先得的数据结构。
现在,当我们添加并发部分时,我将其解释为线程安全(如果不正确,请告诉我)事情变得有点模糊。并发是指各种线程可以添加到队列或从队列中删除(服务项目)的方式?并发是否为这些操作提供了一种排序感?
我将非常感谢对并发队列功能的一般描述。这里的类似帖子并不像我希望的那样普遍。
还有并发优先级队列之类的东西吗?它的用途是什么?
非常感谢您提供有关此主题的任何简短解释或有用的链接。
c# - .Net 中的优先级队列
可能重复:
.Net 中的优先级队列
这个问题很相似,但我想确切地知道:
.Net 中是否有任何类/结构/... 用于优先级队列?就像在 STL 中那样 priority_queue
。它接受一个比较函数来支持自定义排序。
我在 .Net 中找到的最好的东西是SortedList< Key, Value >,它按 Key 对它的值进行排序。因此,一种解决方案是为 Key 类实现自定义的Compare接口。但我不能将我的元素分成键/值对。我有必须使用自定义函数根据其值排队的原子元素。
那么,.Net 中是否有任何集合类接受比较函数来对其元素进行排序?
有什么方法可以派生支持此功能的 .Net 类(可能是HashSet )?
笔记:
- 我知道许多第三方为此实现了非常好的类。也许一个很好的例子是PowerCollections。但我想使用.Net中的现有类快速简单的解决方案
- 我正在使用 .Net Framework 3.5
java - Java:设计问题 - 集合之间的最小对
我有两组Animal
对象。动物之间的距离是使用一种特定的算法来定义的,该算法着眼于它们的特征。我正在尝试设计一种方法来从两组(每个一组)中找到最小化距离的对。
我有一个想法:创建一个参数化Tuple
类来配对Animals
. PriorityQueue
使用比较器创建一个以Tuple<Animal>
根据两个成员之间的距离进行排序。然后,从PriorityQueue
.
这是好的设计,还是浪费?我相信它会在 O(m+n) 时间内运行,其中 m 和 n 是每个集合的大小。
如果Tuple
是一个参数化类,那么在其上使用仅适用于的 Comparator 将如何工作Animal
?
我想使用这种findMinimalPair
方法来创建一个生成树,以最小化Animal
对象图的距离。如果我通过不断地从 中弹出对来做到这一点PriorityQueue
,检查以确保每对仍然包含每个集合的一个成员,该怎么办?
这是一个基本的例子。以下是距离:
假设集合是:
A0
A1、A2、A3
这是元组的排序顺序,按距离:
所以我们看到 A3 是最接近的。然后将 A3 移动到第一个集合中:
A0, A3
A1, A2
再次,我们检查最小对:
现在A2被拿走了。看看它怎么运作?
这就是我最终做的。注释?
c++ - priority_queue 的问题 - 在堆后写入内存
我正在尝试使用priority_queue,并且程序不断失败并出现错误消息HEAP CORRUPTION DETECTED。
以下是片段:
类 Message 具有重载的运算符 > 和 <
在这里我填满队列:
在主程序中:
我不知道似乎是什么问题。当我推送大约 8 个项目时会发生这种情况,并且在线失败
在 <队列>
:(
这是消息类的定义——非常简单:
};
Poruka - 消息
c - 在 C 中使用条件变量实现优先级队列
我目前对条件变量的理解是,所有阻塞(等待)的线程都被插入到一个基本的 FIFO 队列中,当调用 signal() 时,第一项被唤醒。
有没有办法修改这个队列(或创建一个新结构)来代替优先级队列?我已经考虑了一段时间,但大多数解决方案最终都受到 CV 和互斥体固有的现有队列结构的阻碍。
谢谢!
javascript - 如何在网页上最好地确定 HTTP 请求的优先级?
我需要优先下载(在我的情况下)图像。
为此,我宁愿使用某种插件(最好用于 jQuery),让我无需构建自己的下载队列机制就可以做到这一点。
考虑这种情况:
你有一个网页。您的网页能够向给定用户显示三个图像。根据用户的要求,这些图像一次只显示一个。
然后,理想情况下,您希望从上到下加载图像,直到用户做出选择。然后,您会希望他的选择在队列中向上移动并成为下一个(他所做的每一个选择)。
当然,在只有三张图片的页面中,这并不是真正的问题,但随着图片越来越多,这变得很重要。
我目前只使用背景图像来显示图像,并希望保持这种状态。
哦,另外,我希望在加载图像时显示“spinner.gif”。
有什么建议么?
谢谢。
更新我最终基于此制作了自己的排队系统:http: //jqueryfordesigners.com/image-loading/
java - Java:从匿名内部类访问局部变量?(优先队列)
我想使用 aPriorityQueue
对图进行拓扑排序。为简洁起见,我想为比较器使用匿名内部类。但是,我需要访问图表g
以确定我正在查看的节点的度数。这可能吗?
更正的代码
algorithm - 最小生成树的运行时间?(Prim 方法)
我编写了一个使用 Prim 方法解决 MST 的代码。我读到这种实现(使用优先级队列)应该有 O(E + VlogV) = O(VlogV) 其中 E 是边数和 V 边数但是当我查看我的代码时它根本不那样。如果有人能为我解决这个问题,我将不胜感激。
对我来说,运行时间似乎是这样的:
while 循环需要 O(E) 次(直到我们遍历所有边) 在该循环中,我们从 Q 中提取一个元素,这需要 O(logE) 时间。第二个内部循环需要 O(V) 时间(尽管我们不是每次都运行这个循环,很明显它会运行 V 次,因为我们必须添加所有顶点)
我的结论是运行时间为:O( E(logE+V) ) = O( E*V )。
这是我的代码:
java - Java 优先级队列应该如何工作?
简短的故事,我正在实现一个图表,现在我正在研究 Kruskal,我需要一个优先级队列。我对优先级队列的定义是,具有最小键的元素会排在第一位?这是错的吗?因为当我在队列中插入加权边(或数字)时,它们最终没有排序。
那会打印出来;[1、54、51、102、99、55]。这不像我想要的那样排序!是的,我做了一个比较器,它进入优先级队列,从边缘对象中提取数字并基于该 int 进行比较。所以这应该有效,还是我完全误解了这个数据结构如何工作的整个概念?