答:
#include <iostream>
using namespace std;
// 函数原型声明
void bubbleSort(int arr[], int n);
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr)/sizeof(arr[0]);
cout << "原始数组: \n";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
// 调用冒泡排序函数
bubbleSort(arr, n);
cout << "排序后的数组: \n";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
// 冒泡排序函数
void bubbleSort(int arr[], int n) {
bool swapped; // 用于检测是否发生了交换
for (int i = 0; i < n-1; i++) { // 外层循环控制遍历次数
swapped = false; // 每一轮开始前,先假设没有发生交换
// 内层循环进行比较和交换
for (int j = 0; j < n-i-1; j++) {
// 如果当前元素大于下一个元素,则交换它们
if (arr[j] > arr[j+1]) {
swap(arr[j], arr[j+1]); // 使用C++标准库中的swap函数
swapped = true; // 发生了交换
}
}
// 如果一轮结束后没有发生任何交换,说明数组已经排序完成
if (!swapped) {
break;
}
}
}
代码见上