algorithm - 当集合不相交时,是否有类似于联合查找的交集查找算法?

标签 algorithm sorting data-structures computer-science

我想找到包含整数值的集合的交集? 如果假设您有 4-5 个包含 2k-4k 整数的列表,最有效的方法是什么?

最佳答案

在许多语言中,例如 c++ 集合被实现为平衡二叉树,因此您可以直接评估 O(NlogM) 中的集合交集,只需查看另一个集合即可将 n 用作较小的集合大小在 O(logM) 中。

优化:-

如果您希望它用于多个集合,您可以进行 huffman 编码 中使用的优化:-

  1. Use a priority queue of sets which selects smallest set first
  2. select two smallest sets first evaluate intersection and add it to queue.
  3. Do this till you get empty intersection set or one set(intersection set) remaining.

注意:如果使用 c++,则使用 std::set

关于algorithm - 当集合不相交时,是否有类似于联合查找的交集查找算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21720900/

相关文章:

c - 更新一个点的位置

algorithm - 水库采样无法理解概率

c# - 使用 Entity Framework 的规范模式(按属性排序)

java - 根据总值(value)对值组进行排序

php - 包含月份和年份的排序字符串 - 'may - 2016'

c++ - 设计容器的技巧

c# - 在树中转换表

algorithm - 数组数组的迭代算法

algorithm - 生成独特的颜色

Javascript - 查找表的结构