我的并行编程类(class)的部分作业是创建一个包含 3.13 亿个唯一整数的文件。我想我会将两个随机数相乘以获得非常大的范围,但是检查唯一性的最佳方法是什么?
我是否应该创建一个数组并每次都在该数组中搜索匹配项?这似乎效率很低。
编辑 - 问题是最终对列表进行排序(使用线程/多核),因此顺序列表不起作用。
最佳答案
您可以按顺序填充文件 - 生成的文件如下所示:
0 1 2 3 4 5 6 7 8 9 ... 312999999
这些数字生成起来非常简单,并且保证是唯一的。
关于c++ - 如何创建一个非常大的唯一整数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10527443/