【发布时间】:2017-10-13 00:33:19
【问题描述】:
我有一组唯一字符串(数千个)和另一组更大的唯一字符串(超过一百万个)。两个集合中的字符串长度或多或少相同(少于 10 个字符,它是用作 id 的字符串)。我需要从较小的集合中删除字符串的子集,只保留较大集合中存在的字符串。换句话说,如果这样的字符串存在于较大的集合中,我将其保留在较小的集合中,否则我需要将其从较小的集合中删除。 这两个集合的容器可以是任何类型的 (C#),也可以只是简单的数组。问题是:我需要使用最高效(按时间)的方式从较小的容器中删除较大容器中不存在的字符串。
【问题讨论】:
-
那么到目前为止,您尝试了哪些方法?你有任何代码说明你做了什么吗?
-
你已经很好地解释了你需要什么。您能否解释一下到目前为止您已经尝试过什么以及您想要进行哪些改进?
-
使用数组你不会超过
O(N*M)的性能成本(N是小集合的大小,M是大集合的大小我>)。由于需要迭代。如果你想让这个更快,考虑改变数据结构,如果更大的集合是一个哈希表,它会让这个任务O(N)。 -
为什么这被标记为太宽泛了??
-
@KeithNicholas 因为这个问题太宽泛了。
标签: c# string performance