出处:https://mp.weixin.qq.com/s/uYPnZ0MsQIT2_t3lk8ju1g

问题

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

小E最近在设计一款斗地主小游戏,为了保证发到玩家手中的牌具有随机性,小E必须对现实世界中的洗牌过程进行模拟。看似简单的一个问题,却难住了小E。

于是,小E向老师请教。

思路

 洗牌算法 随笔 第1张

洗牌算法 随笔 第2张

洗牌算法 随笔 第3张

洗牌算法 随笔 第4张

洗牌算法 随笔 第5张

洗牌算法 随笔 第6张

洗牌算法 随笔 第7张

洗牌算法 随笔 第8张

洗牌算法 随笔 第9张

洗牌算法 随笔 第10张

洗牌算法 随笔 第11张

洗牌算法 随笔 第12张

洗牌算法 随笔 第13张

洗牌算法 随笔 第14张

洗牌算法 随笔 第15张

洗牌算法 随笔 第16张

洗牌算法 随笔 第17张

洗牌算法 随笔 第18张

洗牌算法 随笔 第19张

洗牌算法 随笔 第20张

洗牌算法 随笔 第21张

洗牌算法 随笔 第22张

洗牌算法 随笔 第23张

点评:上面即为洗牌算法的思想,其本质是对数组元素进行随机重排。数组中每个元素经过洗牌算法后落在数组某个位置上的概率是相等的,洗牌算法在牌类游戏中非常有用。我们最终将算法的时间复杂度优化到了O(n),空间复杂度优化到了O(1)。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄