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;
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM