数组的随机打乱

数组的随机打乱

本篇随笔介绍一下一个小技巧:数组的随机打乱。

有两种方式,第一种是用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

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午6:54
下一篇 2023年2月12日 下午6:55

相关推荐