全排列问题。设R={r1,r2,r3…rn}是要进行排列的n个元素,请编程列出全部排列情况。例:序列 {1,2,3}的全排列为:
时间: 2023-04-04 22:04:47 浏览: 110
我可以回答这个问题。全排列问题可以使用递归算法来解决。具体实现可以参考以下代码:
#include <iostream>
#include <vector>
using namespace std;
void permute(vector<int>& nums, int start, vector<vector<int>>& result) {
if (start == nums.size()) {
result.push_back(nums);
return;
}
for (int i = start; i < nums.size(); i++) {
swap(nums[start], nums[i]);
permute(nums, start + 1, result);
swap(nums[start], nums[i]);
}
}
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> result;
permute(nums, 0, result);
return result;
}
int main() {
vector<int> nums = {1, 2, 3};
vector<vector<int>> result = permute(nums);
for (auto& perm : result) {
for (auto& num : perm) {
cout << num << " ";
}
cout << endl;
}
return 0;
}
输出结果为:
1 2 3
1 3 2
2 1 3
2 3 1
3 2 1
3 1 2
阅读全文