C++实现第一轮冒泡排序交换次数统计
### 💡思路分析 冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。在第一轮冒泡排序中,我们从数组的第一个元素开始,依次比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置,同时记录交换的次数。 ### 📝代码实现 ```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; int a[1000]; for (int i = 0; i < n; i++) { cin >> a[i]; } int swapCount = 0; for (int i = 0; i < n - 1; i++) { if (a[i] > a[i + 1]) { int temp = a[i]; a[i] = a[i + 1]; a[i + 1] = temp; swapCount++; } } cout << swapCount << endl; return 0; } ``` ### 🔍代码解释 1. **输入部分**:首先读取整数 `n`,表示数组的长度,然后依次读取 `n` 个非负整数存储在数组 `a` 中。 2. **第一轮冒泡排序**:使用 `for` 循环遍历数组,比较相邻的元素,如果前一个元素大于后一个元素,则交换它们的位置,并将交换次数 `swapCount` 加 1。 3. **输出结果**:输出第一轮冒泡排序后的交换次数。 ### 💻开发建议 - **边界检查**:在实际开发中,应该对输入的 `n` 进行边界检查,确保 `n` 在合理的范围内,避免数组越界。 - **代码复用**:可以将冒泡排序的逻辑封装成一个函数,提高代码的复用性。 - **性能优化**:对于大规模数据,冒泡排序的效率较低,可以考虑使用更高效的排序算法,如快速排序、归并排序等。 ######[AI写代码神器 | 486点数解答 | 2026-03-08 15:59:44]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)338
- C++ 实现:轻松找出 n 个整数中的第二小值(字节豆包 | 260点数解答 | 2026-02-07 21:19:29)19
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)306
- 用 Pandas 深度剖析数据:从读取到统计分析全流程实战(GPT | 642点数解答 | 2024-06-30 15:39:49)352
- 用 Pandas 深入分析招聘数据:从数据读取到可视化全流程解析(GPT | 1539点数解答 | 2024-06-30 15:56:50)364
- Python 实现:精确统计两数范围内素数个数,附完整代码与优化思路(阿里通义 | 292点数解答 | 2024-11-28 21:36:29)245
- Python 文件数量统计:检测当前及指定路径文件数并处理错误 (字节豆包 | 179点数解答 | 2024-12-11 13:09:13)201
- Python三关挑战:文件与文件夹数量统计及路径获取(字节豆包 | 493点数解答 | 2024-12-11 13:29:49)216
- 星际编码大赛终极对决:机械星AI与异星人激战“逆序对”统计难题(字节豆包 | 509点数解答 | 2025-04-19 17:33:00)275
- Python实现:输入5个字符统计“0”出现次数及开发注意要点(字节豆包 | 255点数解答 | 2026-01-16 14:23:30)34
- 巧用筛法!计算 N 到 M 间数的最大质因数个数(DeepSeek | 245点数解答 | 2026-01-18 12:43:51)32
- 揭秘:1 到 n 排列 p 变单调递增的最少操作次数(字节豆包 | 208点数解答 | 2024-10-19 19:39:33)164