//冒泡排序 void BubbleSort(int* arr, int n) { int end = n; while (end) { int flag = 0; for (int i = 1; i < end; ++i)//代表每一次进入循环左边数据都会少一个 { if (arr[i - 1] > arr[i]) { int tem = arr[i]; arr[i] = arr[i - 1]; arr[i - 1] = tem;//右边比左边大就交换 flag = 1; } } if (flag == 0) { break; } --end; } 给代码添加注释
时间: 2025-03-22 18:12:59 浏览: 25
### 如何为 C/C++ 实现的冒泡排序函数添加详细注释
以下是带有详细注释的冒泡排序代码示例:
```cpp
// 定义一个名为 bubbleSort 的函数,用于对整数数组进行冒泡排序
void bubbleSort(int arr[], int n) {
// 外层循环控制排序的轮次,n 表示数组的大小
for (int i = 0; i < n - 1; ++i) { // 每一轮会将当前未排序部分的最大值移动到最后位置
bool swapped = false; // 添加标志变量,用于优化算法性能
// 内层循环负责逐个比较相邻元素,并在必要时交换它们的位置
for (int j = 0; j < n - i - 1; ++j) {
// 如果前一个元素大于后一个元素,则交换两者的位置
if (arr[j] > arr[j + 1]) {
std::swap(arr[j], arr[j + 1]); // 使用标准库中的 swap 函数来交换两个元素
swapped = true; // 设置标志位为 true,表示本轮发生了交换
}
}
// 如果某一轮中没有任何元素发生交换,说明数组已经有序,提前结束排序过程
if (!swapped) break;
}
}
// 主函数演示如何调用 bubbleSort 进行排序
int main() {
int data[] = {64, 34, 25, 12, 22, 11, 90}; // 初始化待排序的数组
int size = sizeof(data) / sizeof(data[0]); // 计算数组的实际长度
// 调用 bubbleSort 对数组进行排序
bubbleSort(data, size);
// 打印排序后的结果
std::cout << "Sorted array: \n";
for (int i = 0; i < size; ++i) {
std::cout << data[i] << " "; // 输出每一个已排序的元素
}
return 0; // 返回成功状态码
}
```
上述代码通过详细的注释解释了每一部分的功能以及其作用机制。特别是关于 `swapped` 变量的部分,这是为了提高效率的一种常见优化方法[^1]。
#### 关于冒泡排序与其他排序算法的选择
当面对不同的实际需求时,应根据具体情况选择合适的排序算法。例如,在大多数情况下可以选择快速排序因其平均时间复杂度较低;但如果需要稳定的排序则可能更倾向于归并排序;而在内存受限的情况下可考虑堆排序[^3]。
阅读全文
相关推荐














