C++实现随机洗牌算法

随机洗牌算法就是让一组数据随机出现。

#include <iostream>
#include <vector>
#include <ctime>
#include <cstdio>
using namespace std;

// 随机洗牌算法
void shuffle(vector<int>& vec)
{
    int n = vec.size();
    if(n <= 0)
        return ;
    srand(time(0));

    for(int i = 0; i < n; i++)
    {
        //保证每次第i位的值不会涉及到第i位以前
        int index = i + rand()%(n-i);
        swap(vec[index], vec[i]);
    }
}

int main()
{
    vector<int> vec;
    for(int i = 1; i <= 10; i++)
    {
        vec.push_back(i);
    }
    shuffle(vec);

    for(auto it : vec)
            cout << it << " ";
    return 0;
}

 

posted @ 2020-03-31 10:50  Lucky&  阅读(2043)  评论(0编辑  收藏  举报
//返回顶部开始
//返回顶部结束