您的位置:首页 > 其它

算法设计与分析 全排列的递归实现算法

2017-07-07 09:39 246 查看
2.全排列的递归实现算法。
输入:先输入要求输入的字符的个数,后依次输入(或随机生成)每个字符(不能仅仅是数字)。
输出:全排列的结果。
示例:输入:3  /  *  2,输出:/  * 2  /  2  *  *  /  2  *  2  /  2  *  /  2  /  * 

 
R的全排列可归纳递归定义如下:

C++版:
#include<iostream>
using namespace std;
void perm(int *a,int k,int m)
{
if(k==m)
{
for(int i=0;i<=m;i++)
cout<<a[i]<<" ";
}
else
{
for(int j=k;j<=m;j++)
{
swap(a[j],a[k]);
perm(a,k+1,m);
swap(a[j],a[k]);
}
}
}

int main()
{
int n;
char a[100];
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
perm(a,0,n-1);
cout<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: