zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    【NOI2015】荷马史诗
    Codeforces Round #415 (Div. 2)
    Codeforces Round #408 (Div. 2)
    bzoj3230
    poj1743
    poj1226
    bzoj1295
    bzoj1294
    bzoj1296
    bzoj1239
  • 原文地址:https://www.cnblogs.com/xiaokang01/p/12603618.html
Copyright © 2011-2022 走看看