以下是一个使用 C++ 解决此问题的示例代码: ```cpp #include <iostream> #include <vector> int minMoves(std::vector<int>& nums) { int n = nums.size(); int count = 0; for (int i = 0; i < n; ++i) { while (nums[i]!= i + 1) { std::swap(nums[i], nums[nums[i] - 1]); count++; } } return count; } int main() { std::vector<int> nums = {2, 1, 3}; int moves = minMoves(nums); std::cout << "最少移动次数: " << moves << std::endl; return 0; } ``` 在上述代码中,`minMoves` 函数通过不断交换当前位置上数字与它应在位置上数字的位置,直到整个数组变成有序,同时统计交换的次数。在 `main` 函数中给出了示例的输入和输出。 [2024-08-17 11:15:03 | AI写代码神器 | 243点数解答]