算法实现人名的全排列C
时间: 2023-10-27 14:07:26 浏览: 42
++代码:
```c++
#include<iostream>
using namespace std;
// 交换两个字符
void swap(char &a, char &b)
{
char temp=a;
a=b;
b=temp;
}
// 递归实现全排列
void Permutation(char* pStr, char* pBegin)
{
if(*pBegin=='\0')
{
cout<<pStr<<endl;
}
else
{
for(char* pCh=pBegin; *pCh!='\0'; ++pCh)
{
// 交换第一个字符和其它字符
swap(*pCh, *pBegin);
// 递归排列除第一个字符外的其它字符
Permutation(pStr, pBegin+1);
// 还原字符串
swap(*pCh, *pBegin);
}
}
}
void Permutation(char* pStr)
{
if(pStr==nullptr)
return;
Permutation(pStr, pStr);
}
int main()
{
char str[]="abc";
Permutation(str);
return 0;
}
```
输出结果为:
```
abc
acb
bac
bca
cba
cab
```