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;
}

 

posted @ 2013-04-07 10:43  busyfruit  阅读(212)  评论(0编辑  收藏  举报