c++利用选择排序对5000个随机数进行排序
时间: 2024-11-15 17:32:43 浏览: 17
suijishu.rar_提取 随机数
C++ 中可以使用选择排序算法对一组随机数进行升序或降序排列。选择排序的基本思想是每一轮从未排序的部分找出最小(或最大)的元素,并将其放到已排序部分的末尾。以下是简单的步骤:
1. **生成随机数**:首先你需要一个包含5000个整数的数组,你可以使用C++的<random>库来生成随机数。
```cpp
#include <vector>
#include <random>
std::vector<int> generateRandomArray(int size) {
std::vector<int> arr(size);
std::default_random_engine generator(std::chrono::system_clock::now().time_since_epoch().count());
std::uniform_int_distribution<int> distribution(0, 10000); // 假设范围为0到10000,你可以自定义
for (int& num : arr) {
num = distribution(generator);
}
return arr;
}
```
2. **选择排序**:接着实现选择排序的核心函数,它会对未排序部分寻找最小值并交换到已排序部分。
```cpp
void selectionSort(std::vector<int>& arr) {
int n = arr.size();
for (size_t i = 0; i < n - 1; ++i) {
// 找到剩余部分中的最小值索引
size_t minIndex = i;
for (size_t j = i + 1; j < n; ++j) {
if (arr[j] < arr[minIndex]) { // 如果找到更小的值,更新minIndex
minIndex = j;
}
}
// 将找到的最小值与当前位置交换
std::swap(arr[i], arr[minIndex]);
}
}
```
3. **排序并打印结果**:最后调用`selectionSort`函数,然后遍历数组显示结果。
```cpp
int main() {
std::vector<int> numbers = generateRandomArray(5000);
selectionSort(numbers);
// 输出排序后的数组
for (const auto& num : numbers) {
std::cout << num << " ";
}
std::cout << "\n";
return 0;
}
```
阅读全文