c++全排列的递归算法怎么实现

2023-10-16 1483阅读

下面是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

c++全排列的递归算法怎么实现

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]