问题标签 [ordered-set]

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 投票
1 回答
2646 浏览

erlang - 输出 ETS Table Erlang 的内容

我是 Erlang 世界的新手,所以我正在尝试使用它。

我有一个名为 numbers 的 ETS 表。

它的格式为 [{Name,Number},{Name,Number}] 等。

我想知道有没有办法输出整个 ets 表的内容?

0 投票
1 回答
319 浏览

java - Java中排列的数据结构

我需要存储 n 个整数的排列,并能够在有效时间内计算值的排列和逆运算。

即,我需要存储值 [0...n-1] 的重新排序,以便我可以要求位置(i)和值(j)(0 <= i,j <= n)。

举个例子——假设我们有以下值排列:

  • [7,2,3,6,0,4,8,9,1,5]

我需要以下操作:

  • 位置(7) = 9
  • 值(9)= 7

我知道 C++ 中的库,例如:https ://github.com/fclaude/libcds2

Java中是否有任何结构或库可以做到这一点并且在空间和时间上是有效的?

0 投票
1 回答
1547 浏览

python - python中OrderedSet()的时间复杂度

我在 Stack Overflow 上浏览了这个答案。我开始了解PythonOrderedSet中的存在。我想知道它是如何在内部实现的。它类似于集合的哈希表实现吗?

另外,插入、删除、查找等一些常见操作的时间复杂度是多少?

0 投票
1 回答
212 浏览

priority-queue - 记录帕累托前沿的最佳数据结构

请问是否有人已经看到或面临以下问题?

我需要处理满足以下条件的成本/利润值列表 c 1 /p 1、 c 2 /p 2、 c 3 /p 3 ……

  • c 1 ≤c 2 ≤c 3 ≤c 4 ...
  • p 1 ≤p 2 ≤p 3 ≤p 4 ...

这是一个例子:2/3, 4/5, 9/15,12/19

如果尝试插入 10/14上述列表,则由于现有的成本/利润对而拒绝9/12该操作:增加成本(9->10)和减少利润(14->12)是没有用的。例如,此类列表可能出现在背包问题的(状态)动态规划算法中,其中成本可以代表权重。

如果在上面的列表中插入 7/20,这应该会触发9/15and12/19的删除。

我已经使用C++ std::set (通常用红黑树实现)编写了一个解决方案,但我需要提供一个比较函数,最终变得有点过于复杂。此外,在此类集合中的插入需要对数时间,并且实际上很容易导致线性时间(就非摊销复杂性而言),例如当插入触发所有其他元素的删除时。

我想知道是否存在更好的解决方案,因为有无数的解决方案可以实现(有序)集合,例如优先级队列、堆、链表、哈希表等。

这是一个帕累托前沿 (obj1: min cost, obj2: max profit),但我仍然找不到记录它的最佳结构。

0 投票
1 回答
247 浏览

python - 使用存根文件提供 OrderedSet[int] 类类型,无需修改有序集库

我为有序集贡献了类型提示。问题是,尽管我在文件中有以下几行:ordered_set.pyi

我不能写:

在我的代码中,Python 提出:

发生这种情况是因为 inordered_set.py OrderedSet定义为:

我提交了一个 PR,将OrderedSetclass更改为从键入 classes 继承,但ordered-set所有者拒绝接受它,因为正如他所说:

在代码中导入类型会增加代码的安装时依赖性和运行时成本。ordered_set 作为一个没有依赖关系的单个模块已经 6 年了。有人可能决定他们不想与 setuptools 有任何关系,只需将 ordered_set 放到他们的 PYTHONPATH 上,它仍然可以工作。我不想在类型上失去它。

有没有办法在OrderedSet[int]不修改库ordered_set.py文件的情况下支持类似的类型?

0 投票
1 回答
107 浏览

gnuplot - Gnuplot - 如何加入平滑有序的点?

我在三列中有一组数据:

作为数据文件示例:

我的目标是绘制 (x,y) 点和通过每个点的趋势曲线,这些点以第一列值的升序排列。我使用以下脚本:

这里以 mcspline 结果为例:

mcspline 连接点图

生成的曲线应具有纺锤形或环形。无论使用什么平滑选项,Gnuplot 似乎都无法处理这样的目标。不幸的是,大多数平滑(mcspline、csplines ...)选项都对数据进行单调排序。

如何绘制通过第一列值升序排列的每个点的趋势曲线?

谢谢。

0 投票
1 回答
72 浏览

recursion - 在 Lisp 中返回两个集合的并集(按字母顺序)的函数

下面的过程采用两个列表并将它们的并集作为有序列表返回。

它适用于某些示例,但不适用于其他示例。例如:

你能指导我在我的代码中犯错误的地方吗?太感谢了。

0 投票
1 回答
1402 浏览

rust - 如何获得有序集/有序图的最大值和最小值?

Rust 的有序集是BTreeSet

有序映射是一个BTreeMap.

由于 set 和 map 是有序的,所以应该有一种方法来获取包含的最大和最小元素。你怎么得到它们?

0 投票
1 回答
22 浏览

python - OrderedSet() 是否还有 O(1) 的搜索参数?

我听说当你in在一个列表上执行一个运算符时,它必须搜索 O(n) 个对象,而如果你在一个集合上执行它必须搜索 O(1) 个对象。看看我的意思去这里。这仍然适用 OrderedSet吗?

0 投票
0 回答
188 浏览

redis - Redis 有序对象集,通过 GUID 键检索 O(1) 并按另一个 64 位有符号整数键按降序排序

我有一组唯一对象的映射,基于它的 GUID 作为键是唯一的,并按时间戳排序,时间戳是一个按降序排列的 64 位有符号整数。这些集合由 GUID 键入,并且每个集合中的每个单独对象都应该能够通过它在 O(1) 中的 GUID 进行检索。我需要将此地图存储到 Redis 缓存中。我读过 Redis 有序集。但是,我的问题是如何ZADD将对象放入有序集中,以便稍后通过对象的 GUID 作为 O(1) 时间的键进行检索,并按 64 位有符号整数时间戳降序排序?谢谢。