数组的随机打乱
本篇随笔介绍一下一个小技巧:数组的随机打乱。
有两种方式,第一种是用STL里的random_shuffle函数,第二种是手写。
第一种:STL
就是介绍一下random_shuffle函数的用法。
传两个参数,表示数组的首尾元素即可。
random_shuffle(a+1,a+n+1);//打乱a数组(1-n)。
第二种:手写
手写函数比较简单,但是思想挺巧妙的,是一种随机化算法。
直接放代码,大家应该看就能看明白。
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
swap(a[i],a[(rand()%i)+1]);
}
差不多就这些。别怪我水博。
原文链接: https://www.cnblogs.com/fusiwei/p/12615210.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/195201
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!