酷代码 AI
菜单
服务商

火车站车厢排序问题的 C++ 实现

以下是使用 C++ 编写的解决该问题的代码: ```cpp #include <iostream> using namespace std; // 交换相邻两个元素的函数 void swap(int& a, int& b) { int temp = a; a = b; b = temp; } // 冒泡排序并计算交换次数 int bubbleSort(int arr[], int n) { int count = 0; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { // 交换相邻元素 swap(arr[j], arr[j + 1]); // 交换次数加 1 count++; } } } return count; } int main() { int n; // 输入车厢总数 cin >> n; int arr[10000]; // 输入车厢初始顺序 for (int i = 0; i < n; i++) { cin >> arr[i]; } // 调用冒泡排序函数并计算最少旋转次数 int rotations = bubbleSort(arr, n); // 输出最少旋转次数 cout << rotations << endl; return 0; } ``` ### 代码解释: 1. **`swap` 函数**:该函数用于交换两个整数的值,在交换相邻车厢位置时会用到。 2. **`bubbleSort` 函数**:实现了冒泡排序算法。通过两层循环比较相邻元素,如果顺序错误则交换它们,并记录交换的次数。这是因为在这个问题中,交换相邻车厢的位置就相当于旋转桥 180 度,所以交换次数就是最少旋转次数。 3. **`main` 函数**:首先读取车厢总数 `n`,然后读取 `n` 个车厢的初始顺序。接着调用 `bubbleSort` 函数计算最少旋转次数,并将结果输出。 ######[AI问答 | 489点数解答 | 2026-02-25 16:20:36]

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