首页 > 代码库 > 经典洗牌算法C语言实现
经典洗牌算法C语言实现
这种洗牌方式的算法:
1:初始化一个长度为54的数组,和54张牌。
2:从i=1开始到54,每次从剩余的牌堆中随机抽一张牌放到数组的i下标下。
这样我们可以用一个数组做也可以用两个数组做。
就和经典的选择排序一样。
#include<stdio.h> #include<time.h> #include<stdlib.h> #include<string.h> #include<vector> #include<algorithm> #define POKER_NUM 54 int poker[54]; void iniPoker() { for(int i=0;i<POKER_NUM;i++) { poker[i]=i+1; } } void suffle() { for(int i=0;i<POKER_NUM;i++) { int index=rand()%(POKER_NUM-i)+i; //获取从i~POKER_NUM的一个索引 std::swap(poker[i],poker[index]); //交换 } } void printPoker() { for(int i=0;i<POKER_NUM;i++) { if(i%9==0) printf("\n"); printf("%4d",poker[i]); } } int main() { srand(time(NULL)); iniPoker(); printPoker(); suffle(); printf("\n-------------------------------------------------------------\n"); printPoker(); }
经典洗牌算法C语言实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。