#include <iostream> 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]) { // 交换arr[j]和arr[j+1] int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { int arr[] = {5, 3, 8, 2, 1}; int n = sizeof(arr) / sizeof(arr[0]); cout << "排序前的数组:"; for (int i = 0; i < n; i++) { cout << arr[i] << " "; } cout << endl; bubbleSort(arr, n); cout << "排序后的数组:"; for (int i = 0; i < n; i++) { cout << arr[i] << " "; } cout << endl; return 0; }解释这段代码
时间: 2024-04-13 16:29:44 浏览: 69
使用include <iostream>时一定要加using namespace std
这段代码是用C++实现的冒泡排序算法。下面是对代码的解释:
1. 首先,我们定义了一个名为`bubbleSort`的函数,它接受一个整数数组`arr`和数组的长度`n`作为参数。
2. 在`bubbleSort`函数内部,使用两个嵌套的循环来执行冒泡排序算法。外层循环控制需要进行比较和交换的轮数,总共需要进行`n-1`轮。内层循环用于比较相邻元素并进行交换。
3. 在每一轮的内层循环中,我们比较当前元素`arr[j]`和它的下一个元素`arr[j+1]`。如果前者大于后者,就进行交换,确保较大的元素被移动到右侧。
4. 在`main`函数中,我们声明了一个整数数组`arr`并初始化了它的值。
5. 我们通过使用`sizeof(arr) / sizeof(arr[0])`来计算数组的长度,这里假设数组的长度是已知的。
6. 然后,我们输出排序前的数组。
7. 调用`bubbleSort`函数对数组进行排序。
8. 最后,我们输出排序后的数组。
运行以上代码后,输出结果如下:
```
排序前的数组:5 3 8 2 1
排序后的数组:1 2 3 5 8
```
可以看到,冒泡排序算法成功地对数组进行了排序。
阅读全文