c++全排列的递归算法怎么实现
下面是C++中全排列的递归算法的实现:
```cpp
#include
#include
using namespace std;
// 交换两个元素的位置
void swap(vector&
nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
// 递归生成全排列
void permuteHelper(vector&
nums, int begin, vector&
result) {
if (begin == nums.size()) {
result.push_back(nums);
return;
}
for (int i = begin;
i swap(nums, begin, i);
permuteHelper(nums, begin + 1, result);
swap(nums, begin, i);
// 恢复原来的位置,以便进行下一次交换
}
}
vector permute(vector&
nums) {
vector result;
permuteHelper(nums, 0, result);
return result;
}
int main() {
vector nums = {
1, 2, 3}
;
vector result = permute(nums);
for (vector&
permutation : result) {
for (int num : permutation) {
cout
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: c++全排列的递归算法怎么实现
本文地址: https://pptw.com/jishu/548066.html
