c++全排列的递归实现算法
时间: 2023-11-26 18:47:38 浏览: 96
c语言递归算法实现数列全排列.pdf
以下是C++中全排列的递归实现算法:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
void permute(string str, int l, int r) {
if (l == r) {
cout << str << endl;
} else {
for (int i = l; i <= r; i++) {
swap(str[l], str[i]);
permute(str, l+1, r);
swap(str[l], str[i]);
}
}
}
int main() {
string str = "abc";
int n = str.size();
permute(str, 0, n-1);
return 0;
}
```
上述代码中,`permute`函数用于计算字符串的全排列。它采用递归的方式,将字符串中的每个字符与其它字符交换位置,直到所有字符都被交换过一次,此时输出排列结果。`main`函数中,我们定义了一个字符串`str`,并将其作为参数传递给`permute`函数。
阅读全文