问题标签 [set-intersection]

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 投票
3 回答
276 浏览

python - 如何正确遍历交叉路口

我试图遍历一系列交叉点,其中每次迭代都是一组新行的交叉点。我的代码如下所示:

NNCatelogue 本质上是一个 1268 X 12 矩阵,每一次新的线迭代调用一个新行。如果我只是输入我想要的行号(即:0、1、2...),那么我会得到预期的输出(前面没有 for 循环)。上面编写的代码给出以下输出:

预期的输出应该是:

知道我哪里可能出错了吗?任何帮助是极大的赞赏!

更新:

我尝试了其中一个答案的变体,虽然它更接近我的预期,但并不完全存在。这是我尝试过的:

结果输出为:

所以一些交叉点是正确的,虽然这不是我想要的输出......这里有什么想法吗?

0 投票
2 回答
12950 浏览

c++ - C ++中集合的有效集合交集

我有一个集合std::set。我想以最快的方式找到这个集合中所有集合的交集。集合中的集合数量通常非常少(~5-10),每个集合中的元素数量通常少于 1000,但偶尔会达到 10000 左右。但我需要做这些交集几十数千次,尽可能快。我尝试对以下几种方法进行基准测试:

  1. std::set最初复制第一组的对象中的就地相交。然后对于后续的集合,它遍历自身的所有元素和集合的第 i 个集合,并根据需要从自身中删除项目。
  2. 使用std::set_intersectioninto a temporary std::set,将内容交换到当前集合,然后再次找到当前集合与下一个集合的交集并插入临时集合,依此类推。
  3. 手动迭代所有集合的所有元素,如 1),但使用 avector作为目标容器而不是std::set.
  4. 与 4 相同,但使用 astd::list而不是 a vector,怀疑 alist将提供从中间更快的删除。
  5. 使用散列集 ( std::unordered_set) 并检查所有集合中的所有项目。

事实证明,vector当每个集合中的元素数量较少时,使用 a 会稍微快一些,而list对于较大的集合,使用 a 会稍微快一些。就地使用set比两者都要慢得多,其次是set_intersection和散列集。是否有更快的算法/数据结构/技巧来实现这一目标?如果需要,我可以发布代码片段。谢谢!

0 投票
6 回答
30366 浏览

java - java.util.Map 的交集

是否有java.util.Map在两张地图上执行交叉路口的方法或任何实用程序?(通过“键”与两个地图相交)

我找不到任何东西。我总是可以实现自己的交集逻辑,但我希望其中一个java.util.*类中已经有一些操作可以做到这一点。

0 投票
1 回答
143 浏览

c++ - 如何比较和排序向量在 c

我有两个由蛋白质 pdb id 制成的载体,例如 1A3BA、3B5RE、1WYX5。我想比较这些两个向量中的蛋白质列表是否相同。有什么不同?我尝试在C++中使用stl算法,但是一直有段错误!有没有人可以告诉我怎么了..?我也不太确定排序算法,但无论如何..无论我是否进行排序,代码都有问题......

0 投票
1 回答
1571 浏览

algorithm - 集合交点的并行算法

我有 n 组(分布在 n 列上)表示网格节点的数据,我想知道一种有效的并行算法来找到这些组的交集,即公共节点。只要任何 2 个集合共享一个节点,就定义了一个交集。

例如;

输入:

实现并行算法——>结果:(找到交叉点后)

该算法需要在 n-rank 上完成,每个 rank 有 1 个集合。

0 投票
2 回答
94 浏览

c++ - 在集合的非交集处打印数据一套

如果我有两组数据

使用 set_intersection 我可以获取两个集合的交集部分的数据。

如何分别打印出集合 A 和集合 B 的非交集部分的数据?

0 投票
2 回答
143 浏览

r - 需要展平列表以在 R 中使用相交

我有全名数据,我使用 strsplit() 来获取名称的每个元素。

我也有以下学位列表

我想得到每个名字和各自学位的交集。

我不确定如何展平名称列表,以便可以使用 intersect 比较两个向量。当我尝试unlist(df$splitname,recursive=F)时,它分别返回每个元素。任何帮助表示赞赏。

0 投票
1 回答
174 浏览

c++ - 为什么我的 set_intersection 代码比 std 慢?

我有以下两个功能。我使用随机排序的向量执行每个函数大约 200K 次(每个函数获得相同的两个向量,但向量在运行之间会发生变化)。我有点困惑,因为我的代码在所有 200K 迭代中总共运行了大约 500 毫秒,而 STD 函数调用在 440 毫秒内运行。~60ms 去哪儿了?STD 在做什么(或不做什么)我做的不同?

我在核心 i5 上使用 Visual Studio 10。

0 投票
1 回答
2676 浏览

jpa - 如何使用 CritieraQuery 获取 interesect 查询?

给定

查找使用特定标签集合标记的所有文档。本质上,EclipseLink 相当于:

但使用 JPA CritieraQuery。

0 投票
2 回答
1199 浏览

java - 在Java中将两个位集相交成一个新的位集的最快方法是什么?

有没有比这更快的时间:

也许转换为整数并添加为数字然后转换回BitSet