C/C++下生成待排序数
做实验需要大量数据,便用C内置的rand()伪随机数生成函数生成了一定的伪随机数。现在的问题是对于超大范围的随机数生成还是一个问题。留待以后解决。代码如下:
#include <iostream> #include <time.h> #include <math.h> #include <cstdlib> #include <fstream> using namespace std; int main() { srand(time(NULL)); int n,n1,i=0; cout << "输入待排序数组的个数:"; cin >> n; int* a = new int[n]; int nInterval = n/(RAND_MAX+1),j=0; //将0~n分成nInterval段,每段长为RAND_MAX+1; //int* a = (int *) malloc(n*sizeof(int)); ofstream ou; ou.open("sortData.txt"); for (j = 0; j <= nInterval; ++j) { for (i = 1; i<RAND_MAX && i<n; ++i) { a[i] = RAND_MAX*j+rand(); ou << a[i] << ' '; if (0 == i%11) ou << endl; } } return 0; }