c++数组元素随机打乱
时间: 2024-12-12 12:13:10 浏览: 9
在C++中,可以通过多种方法将数组元素随机打乱。以下是一个常见的实现方式,使用了Fisher-Yates洗牌算法:
```cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
void shuffleArray(int arr[], int size) {
// 设置随机数生成器的种子
std::srand(std::time(0));
for (int i = size - 1; i > 0; --i) {
// 生成一个0到i之间的随机索引
int j = std::rand() % (i + 1);
// 交换arr[i]和arr[j]
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
std::cout << "原数组: ";
for (int i = 0; i < size; ++i) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
shuffleArray(arr, size);
std::cout << "打乱后的数组: ";
for (int i = 0; i < size; ++i) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个示例中,`shuffleArray`函数接受一个数组和数组的大小作为参数,并使用Fisher-Yates算法将数组元素随机打乱。`main`函数中,我们定义了一个数组并打印了打乱前后的数组。
阅读全文