目的:给数组洗牌,随机打乱顺序
思路:
(1)遍历数组,每次随机生成一个坐标位置
思路:
(1)遍历数组,每次随机生成一个坐标位置
(2)交换当前遍历位置和随机生成的坐标位置的数字,直到遍历到最后一个元素
代码实现如下:
#include<iostream>
#include<vector>
#include<time.h> //是C/C++中的日期和时间头文件。用于需要时间方面的函数
#include<stdlib.h> //定义了RAND_MAX,srand()等
using namespace std;
void shuffle(vector<int> &v) {
if (v.size() <= 1) return;
for (int i = 0; i<v.size(); i++) {
int temp = rand() % v.size();
swap(v[i], v[temp]);
}
}
int main() {
srand((unsigned)time(NULL));
vector<int> test = { 0,1,2,3,4,5 };
shuffle(test);
for (auto t:test) {
cout << t << ' ';
}
cout << endl;
}