酷代码 AI
菜单
服务商

车厢排序最少旋转次数的冒泡排序实现

```cpp #include <iostream> using namespace std; int a[100]; int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; } int sum = 0; for (int i = 1; i <= n - 1; i++) { // 设置flag,表示是否还需要交换 bool flag = false; // j从1遍历到n-i,每一轮将大的元素冒泡到最后 for (int j = 1; j <= n - i; j++) { if (a[j] > a[j + 1]) { int temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; sum++; flag = true; } } // 如果这轮没有交换元素,就跳出循环 if (!flag) { break; } } cout << sum; return 0; } ``` 代码中通过冒泡排序对车厢顺序进行排序,在每一轮比较中,若相邻元素顺序不对则交换位置并增加交换次数 `sum`,同时将 `flag` 置为 `true`。若某一轮没有发生交换,即 `flag` 为 `false`,则说明数组已经有序,跳出循环,最后输出最少旋转次数 `sum`。 ######[AI问答 | 361点数解答 | 2026-04-11 19:43:05]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]