随机生成0~N之间的N个不重复整数

洗牌算法(From 《编程珠玑》):

#define  N 10000000
void  swap( int   * i,  int   * j)
{
 
int temp=*i;
 
*i=*j;
 
*j=temp; 
}


int *  RandInts()
{
 
int *n=(int*)malloc(N*sizeof(int));
 
for(int i=0;i<N;i++)
  n[i]
=i;
 srand(time_t());
 
for(int i=0;i<N;i++)
 
{
  swap(
&(n[i]),&(n[rand()%N]));
 }

 
return n;
}


void  main()
{
    
int *n=RandInts(); 
}

你可能感兴趣的:(随机生成0~N之间的N个不重复整数)