- //purpose: 生成随机的不重复的测试数据
- //1000w数据量,要保证生成不重复的数据量,一般的程序没有做到。但,本程序做到了。
- #include <time.h>
- #include <assert.h>
- #include <string.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <unistd.h>
- #define size 10000000
- int num[size] = {0};
- void swap(int* a, int* b)//第一种,也是最常用的一种
- {
- int t;
- t=*a;
- *a=*b;
- *b=t;
- }
- int main()
- {
- int n;
- int i, j;
- FILE *fp = fopen("data.txt", "w");
- assert(fp);
- for (n = 0; n < size; n++) //之前此处写成了n=0;n<size。导致下面有一段小程序的测试数据出现了0,特此订正。
- num[n] = n+1;
- srand((unsigned)time(NULL));
- printf("num init ok\n");
- for (i = size - 1; i >= 1; --i)
- {
- swap(&num[i], &num[rand() % i]);
- }
- for (n = 0; n < size; n++)
- fprintf(fp, "%d ", num[n]);
- fclose(fp);
- return 0;
- }
高效产生不重复的随机数
最新推荐文章于 2021-05-28 10:33:03 发布