查找包含数百万个元素的两个列表或哈希集之间的公共元素数量
本文关键字:元素 之间 哈希集 列表 百万个 包含数 查找 两个 | 更新日期: 2023-09-27 18:06:28
在c#中,确定两个列表或哈希集(可能有数百万个值)之间的公共元素数量的一些性能方法是什么?
使用HashSets可以获得最佳性能。你可以使用IntersectWith方法。
// assuming HashSet<T> hashSetA
// and an IEnumerable<T> collectionB
hashSetA.IntersectWith(collectionB);
基于哈希集的解决方案提供了O(n)的性能,这几乎是最好的。
下一个最好的方法是对两个列表进行排序,然后在两个列表上进行锁步线性迭代,选择共同的元素,这将产生O(nlogn)的性能。
HashSet IntersectWith
HashSet。IntersectWith方法
对于比较两个List,我将创建较大的
的HashSet使用除了
两个列表的差异