洗牌算法

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void swap(int &a,int &b)
{
	int c;
	c = a;
	a = b;
	b = c;
}


void display(int card[],int n)
{
	int i;
	for(i=0;i<n;i++)
		printf("%d ",card[i]);
	printf("\n");
}


/*算法主程序*/
void Shuffle(int card[],int n)
{
	int i;
	int index=0;
	for(i=0;i<n;i++)
	{
		/*返回i到n之间的一个数字*/
		index=rand()%(n-i)+i;
		swap(card[i],card[index]);
	}
}

int main()
{
	int card1[54];
	for(int i=0;i<54;i++)
	{
		card1[i]=i;
	}

	srand((unsigned)time(NULL));
	Shuffle(card1,54);

	printf("Wash.......\n");
	display(card1,54);	
	return 0;
}


 

posted on 2014-11-10 22:53  kangbry  阅读(122)  评论(0编辑  收藏  举报

导航