问题标签 [heapq]
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.
python - heapq.merge:将merge的结果merge后,原来的merge为空
首先我使用创建了两个结果 a & b heapq.merge
,但是在merge
ing a&b 之后,我发现 a 的列表是空的。
的最终结果list(a)
是空的,为什么要merge(a,b)
改变a?
python - Python:heapq.heappop() 给出了奇怪的结果
我试图heapq
在我的程序中使用 Python 模块,但我遇到了一个奇怪的问题heapq.heappop()
。该函数似乎没有返回堆中的最小元素。看看下面的代码:
不应该先heappop()
返回[654, 'b']
然后再返回[1326, 'a']
吗?
python - 具有相同优先级的 Heapq
我正在尝试创造一个事件的臀部。因此,我定义了一个Event
由我的不同事件继承的类。
该值last_instant
是优先条件,因此堆由定义如下的元组组成:
但是,我有放置在同一位置的事件,last_instant
因此heapq
在. 我还没有实现它,但即使我实现了,我也不知道如何实现,因为某些事件没有任何标准来区分应该首先从堆中弹出的事件。<
Event
如果相同,我如何实现一个顺序无关紧要的堆last_instant
?
另一方面,如果我在同一时刻(相同优先级)有相同类型(相同类别)的事件,我想将它们一起弹出并同时处理它们。
我可以看到实现这一点的最佳方法是同时弹出所有项目,将它们存储在列表中,然后按顺序处理它们。然后进入下一个瞬间。但是,它似乎与 heapq 不兼容。
谢谢!
python - Python heapify() 时间复杂度
这是 python heapq.heapify() 的类似实现。在文档中说这个函数在 O(n) 中运行。但看起来对于 n/2 个元素,它执行 log(n) 操作。为什么是 O(n)?
python-3.x - 如何在 Heapq 中查找元素的位置
我正在尝试使用 Python 实现 HeapQ,但我坚持这种情况,我需要在哪里获取队列中键的位置?. 我碰壁试图解决这个问题。任何提示将不胜感激。
python - 为什么我的 heapq 中的元素没有排序 python?
我在 python 中使用了一个简单的 heapq,并在其上实现了lt函数的自定义元素。
然后我在另一个名为 P 的数组中保留一堆这些元素:
问题是当我堆放一个元素时,我希望它是我数组中的最小元素,对吗?但是这个断言在这里失败了
python - heapq custom compareTo
I'm trying to define a custome method to make an ordered insert into a priority queue in python but not getting the expected results. Once defined the insert method into the queue like the following:
And implementing the following lt in the 'node' class:
The insertion is not done by the 'f' attribute value which is what I wanna do, insert in an ascendant order determined by that value. Any help will be much appreciated.
Ex of failure:
It only puts in the first position de lowest value, which does make sense since using a priority queue but then the following ones are not sorted by the custom method I wanna declare.
python - 如何合并 k 个排序的数组,解决方案不允许重复。!
给定 k 个大小为 n 的排序数组,合并它们并打印排序后的输出。
我遵循的算法是
- 遍历每个数组
- 选择 k 个数组中的第 i 个索引
insert()
在最小堆中delMin()
并附加结果数组。
输入:
输出:
输入:
输出:
任何人都可以帮我知道我的算法中缺少什么,以便合并第二个输入中的重复数组吗?
python - heapq push TypeError: '<' not supported between instances
I am working in python and I have some problem with heapq. When I push an element into the heap I receive this error :
TypeError: '<' not supported between instances of 'Point' and 'Point'
Point is my internal class. I push a tuple formed by (float,Point), in according with documentation, heapq should use float as a key, but it doesn't. To be more precise sometimes use float but not always. What is the problem?