c++随机生成一个10大小的一维数组,并对数组进行选择排序和冒泡排序
时间: 2024-12-15 07:20:31 浏览: 7
在C++中,我们可以使用`<cstdlib>`库来生成随机数,并利用`<algorithm>`库中的`sort()`函数来进行选择排序和冒泡排序。首先,我们来生成一个10大小的一维随机数组:
```cpp
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
// 生成10个随机数的范围在[0, 99]
std::vector<int> generate_random_array(int n) {
std::vector<int> arr(n);
std::srand(std::time(0));
for (int i = 0; i < n; ++i) {
arr[i] = rand() % 100;
}
return arr;
}
// 选择排序
void selection_sort(std::vector<int>& arr) {
for (size_t i = 0; i < arr.size() - 1; ++i) {
int min_index = i;
for (size_t j = i + 1; j < arr.size(); ++j) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
if (min_index != i) {
std::swap(arr[i], arr[min_index]);
}
}
}
// 冒泡排序
void bubble_sort(std::vector<int>& arr) {
bool swapped;
for (size_t i = 0; i < arr.size() - 1; ++i) {
swapped = false;
for (size_t j = 0; j < arr.size() - i - 1; ++j) {
if (arr[j] > arr[j + 1]) {
std::swap(arr[j], arr[j + 1]);
swapped = true;
}
}
// 如果一轮没有发生交换,则说明已经有序,提前结束
if (!swapped) break;
}
}
int main() {
// 生成10个随机数的数组
const int size = 10;
std::vector<int> random_arr = generate_random_array(size);
// 打印原始数组
std::cout << "Original Array:\n";
for (const auto& num : random_arr) {
std::cout << num << ' ';
}
std::cout << '\n';
// 选择排序
std::cout << "After Selection Sort:\n";
selection_sort(random_arr);
for (const auto& num : random_arr) {
std::cout << num << ' ';
}
std::cout << '\n';
// 冒泡排序
std::cout << "After Bubble Sort:\n";
bubble_sort(random_arr);
for (const auto& num : random_arr) {
std::cout << num << ' ';
}
std::cout << '\n';
return 0;
}
```
阅读全文