洗牌算法(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();
}
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();
}