用递归的方法求全排列
#include<iostream>
using namespace std;
void Permutation(char* pStr, char* pBegin);
void Permutation(char* pStr)
{
if (pStr == nullptr)
return;
Permutation(pStr, pStr);
}
void Permutation(char* pStr, char* pBegin)
{
if (*pBegin == '\0')
{
cout << pStr << " ";
}
else
{
for (char* pCh = pBegin; *pCh != '\0'; ++pCh)
{
char temp = *pCh;
*pCh = *pBegin;
*pBegin = temp;
Permutation(pStr, pBegin + 1);
char temp = *pCh;
*pCh = *pBegin;
*pBegin = temp;
}
}
}
int main()
{
char str[5] = "abc";
Permutation(str);
cin.get();
return 0;
}