刚开始进公司时,有道笔记题就是关于洗牌的算法题,当时的想法很简单,就是随机拿两个数换。
大概的算法如下:
这个算法是有很大缺点的,因为你完全随机整个数组,可能会把两个数重复交换,从而会就遗失效率,也会随机不完全。
要保证不会让两个数重复交换,而优化乱序算法,代码如下:
最后还是来看看STL的乱序吧,看它有什么可取之处。
random_shuffle
The behavior of this function template is equivalent to:
原来是一样滴-。-