随机生成20个正整数,用冒泡法进行排序,每行显示十个数据。排序前、后都要输出。用C++写
时间: 2024-10-23 17:08:12 浏览: 34
好的,以下是使用C++编写的程序示例,它会随机生成20个正整数,然后使用冒泡排序算法对它们进行排序,并按每行显示十个数据的方式输出排序前后的结果:
```cpp
#include <iostream>
#include <vector>
#include <cstdlib> // 用于 rand 和 srand
#include <ctime> // 用于获取当前时间作为随机种子
void bubbleSort(std::vector<int>& arr) {
int n = arr.size();
for (size_t i = 0; i < n - 1; ++i) {
for (size_t j = 0; j < n - i - 1; ++j) {
if (arr[j] > arr[j + 1]) {
std::swap(arr[j], arr[j + 1]);
}
}
}
}
int main() {
const int size = 20;
std::srand(std::time(0)); // 设置随机种子,保证每次运行结果不同
std::vector<int> numbers(size);
// 生成随机数并填充数组
for (int& num : numbers) {
num = std::rand() % 100; // 取0到99之间的随机整数
}
// 输出原始数组
std::cout << "Original array:\n";
for (size_t i = 0; i < size; i += 10) { // 每10个数换一行
if (i + 9 < size)
std::cout << "[" << numbers[i] << ", ..., " << numbers[i + 9] << "]\n";
else
std::cout << "[" << numbers[i] << ", ..., " << numbers[size - 1] << "]\n";
}
// 排序数组
bubbleSort(numbers);
// 输出排序后的数组
std::cout << "\nSorted array:\n";
for (size_t i = 0; i < size; i += 10) { // 同样每10个数换一行
if (i + 9 < size)
std::cout << "[" << numbers[i] << ", ..., " << numbers[i + 9] << "]\n";
else
std::cout << "[" << numbers[i] << ", ..., " << numbers[size - 1] << "]\n";
}
return 0;
}
```
阅读全文