数组洗牌实现
// random_shuffle.cpp
#include <iostream>
#include <vector>
#include <ctime>
void random_shuffle(std::vector<int>& v) {
int n = v.size();
std::srand(std::time(0));
for (int i = n-1; i > 0; --i) {
std::swap(v[i], v[std::rand() % (i+1)]);
}
}
// test.cpp
#include <iostream>
int main(void) {
std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8};
random_shuffle(v);
for (auto& i : v) {
std::cout << i << " ";
}
std::cout << "\n";
return 0;
}