【发布时间】:2009-01-30 21:35:40
【问题描述】:
给定两个列表(不一定是排序的),找到这些列表的集合交集的最有效的非递归算法是什么?
我不相信我可以使用散列算法。
【问题讨论】:
-
这听起来像是一道作业题——是吗?
-
其实没有。我在工作,我必须在称为 eviews 的统计建模环境中编程。 Eviews 没有内置集合交集,也不支持递归。我需要一个快速算法,因为我的集合往往很大并且程序需要经常运行。谢谢!
-
每个列表中的价值是唯一的吗?如果是,您可以加入列表,对结果进行排序,然后查找重复项。
-
集合中通常有多少个元素? (例如,是否值得您花时间尝试实现哈希,或者您可以摆脱 sort = O(n log n) 吗?)
-
您要排序的数据类型是什么?有时,您可以在设计算法时利用数据的某些特征。
标签: algorithm list set-intersection