对一维数组a冒泡排序
时间: 2024-12-28 15:20:49 浏览: 12
### 冒泡排序算法在一维数组上的实现
对于一维数组 `a` 使用冒泡排序算法进行降序排列,可以通过定义一个名为 `sort` 的子函数来完成此操作。该函数接收两个参数:待排序的整型数组 `a[]` 和其长度 `n`。
以下是 C++ 中的具体实现方式:
```cpp
#include <iostream>
using namespace std;
/// 子函数用于对一维数组执行降序冒泡排序
void sort(int a[], int n) {
bool swapped;
for (int i = 0; i < n - 1; ++i) {
swapped = false;
for (int j = 0; j < n - 1 - i; ++j) {
if (a[j] < a[j + 1]) { // 对于降序应比较相邻两数大小并交换较小者向右移
swap(a[j], a[j + 1]);
swapped = true;
}
}
if (!swapped) break; // 若某轮遍历未发生任何交换,则说明已完全有序可提前结束
}
}
int main() {
const int SIZE = 8;
int arr[SIZE] = {5, 9, 4, 2, 6, 3, 8, 1};
cout << "原始数组:" << endl;
for (auto num : arr) cout << num << ' ';
cout << '\n';
sort(arr, SIZE); // 调用自定义的排序函数
cout << "\n排序后的数组(降序):" << endl;
for (auto num : arr) cout << num << ' ';
cout << '\n';
}
```
上述代码展示了完整的程序逻辑,其中包含了初始化测试数据、调用排序函数以及打印最终结果的过程[^1]。
阅读全文