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