洗牌算法(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();
}
本文转自Silent Void博客园博客,原文链接:http://www.cnblogs.com/happyhippy/archive/2006/12/19/601301.html,如需转载请自行联系原作者
洗牌算法实现
本文介绍了一种基于C语言实现的洗牌算法,该算法通过随机数生成器对数组中的元素进行随机交换,从而达到随机排序的效果。算法首先初始化一个包含N个整数的数组,然后使用srand(time_t())函数初始化随机数生成器,并通过循环调用swap函数来实现数组中元素的位置互换。
3万+

被折叠的 条评论
为什么被折叠?



