#include <iostream>
using namespace std;
/*
算法:
a ( b c d e 的全排列)
b ( a c d e 的全排列)
c ( a b d e 的全排列)
d ( a b c e 的全排列)
e ( a b c d 的全排列)
*/
int iCount = 0;
void Perm(char cArr[],int k,int n)
{
if(k == n-1)
{
cout<<"第"<<++iCount<<"种: ";
for(int i = 0; i < n; i++)
{
cout<<cArr[i]<<" ";
}
cout<<endl;
}
else
{
for(int i = k; i < n; i++)
{
char cTemp = cArr[k];
cArr[k] = cArr[i];
cArr[i] = cTemp;
Perm(cArr,k+1,n);
cTemp = cArr[k];
cArr[k] = cArr[i];
cArr[i] = cTemp;
}
}
}
int main()
{
char cArr[5] = {'a','b','c','d','e'};
Perm(cArr,0,5);
return 0;
}
字符全排列产生器
最新推荐文章于 2024-06-05 19:09:50 发布