C语言C语言编程入门基础学习—完美洗牌算法的对试题

随意必然有重新,所谓“不又的肆意”实际上是洗牌。洗牌算法参考下面:

#include

#include

#include

intd[6];

inti,n,a,b,t;

intc,j;

voidmain() {

srand(time(NULL));

printf(“shuffle 0..n-1 demo”);

for(n=1;n

printf(“_____n=%d_____”,n);

j=1;

for(c=1;c

j*=n*2;

for(c=1;c

for(i=0;i

for(i=n;i>0;i–) {/* 打乱0~n-1 */

a=i-1;b=rand()%i;

if(a!=b)

}

printf(“%04d:”,c);

for(i=0;i

printf(“”);

}

}

printf(“shuffle 1..n demo”);

for(n=1;n

printf(“_____n=%d_____”,n);

j=1;

for(c=1;c

j*=n*2;

for(c=1;c

for(i=1;i

for(i=n;i>1;i–) {/* 打乱1~n */

a=i;b=rand()%i+1;

if(a!=b)

}

printf(“%04d:”,c);

for(i=1;i

printf(“”);

}

}

}