我的问题并不常见。让我们想象几十亿个字符串。字符串通常少于 15 个字符。在这个列表中,我需要找出唯一元素的数量。
首先,我应该使用什么对象?你不应该忘记如果我添加一个新元素,我必须检查它是否已经存在于列表中。一开始这不是问题,但是在几百万字之后它确实会减慢这个过程。
这就是为什么我认为 Hashtable 将是这项任务的理想选择,因为理想情况下检查列表只需要 log(1)。不幸的是,.net 中的单个对象只能是 2GB。
下一步将实现一个自定义哈希表,其中包含一个 2GB 哈希表列表。
我想知道也许你们中的一些人知道更好的解决方案。 (电脑的规范非常高。)
最佳答案
我会跳过数据结构练习,只使用 SQL 数据库。为什么要编写另一个您必须分析和调试的自定义数据结构,只需使用数据库。他们真的很擅长回答这样的问题。
关于c# - 计算十亿元素列表中唯一元素的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2052853/