生成20个随机数,到一个整型数组中,进行冒泡排序,将每一趟排序后的数组状态(每个数组元素的值),输出出来,以观看其排序过程。输出内容为:第1趟:。。。第2趟:。。。
时间: 2024-03-25 11:35:52 浏览: 54
随机生成数后冒泡排序
好的,这是一个关于冒泡排序的问题,我会为您提供一个C++的实现代码,并在每一趟排序后输出数组状态。代码如下:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void bubbleSort(int arr[], int n) {
for(int i = 0; i < n - 1; i++) {
for(int j = 0; j < n - i - 1; j++) {
if(arr[j] > arr[j+1]) {
swap(arr[j], arr[j+1]);
}
}
// 输出每一趟排序后的数组状态
cout << "第" << i+1 << "趟:";
for(int k = 0; k < n; k++) {
cout << arr[k] << " ";
}
cout << endl;
}
}
int main() {
srand(time(NULL)); // 初始化随机数种子
int arr[20];
for(int i = 0; i < 20; i++) {
arr[i] = rand() % 100; // 生成0~99的随机整数
}
cout << "原始数组为:";
for(int i = 0; i < 20; i++) {
cout << arr[i] << " ";
}
cout << endl;
bubbleSort(arr, 20);
return 0;
}
```
代码说明:
- `bubbleSort` 函数为冒泡排序的实现函数,使用两个循环嵌套遍历整个数组,每次将相邻两个元素进行比较,如果前一个元素大于后一个元素,则交换它们的值,这样每一趟排序后,最大的元素就会被放到最后面。排序的趟数是 `n-1`,因为最后一趟只剩下一个元素,不需要再进行比较。
- `main` 函数中先使用 `srand` 函数初始化随机数种子,然后使用 `rand` 函数生成20个0~99的随机整数,存放到数组中。然后输出原始数组,调用 `bubbleSort` 函数进行排序,并在每一趟排序后输出数组状态。
希望这个代码对您有帮助!
阅读全文