全排列的实现方法

来源:互联网 发布:岳阳市淘宝运营招聘 编辑:程序博客网 时间:2024/06/08 14:17
#include <iostream>#include <cstring>#include <algorithm>using namespace std;/*递归实现(一)int n;int visit[11],ans[11];void dfs(int depth){if(depth>n){for(int i=1;i<=n;i++)cout<<ans[i];cout<<endl;}else{for(int i=1;i<=n;i++){if(visit[i]==0){visit[i]=1;ans[depth]=i;dfs(depth+1);visit[i]=0;}}}}int main(){while(cin>>n){memset(visit,0,sizeof(visit));dfs(1);}return 0;}*//*//递归实现(二)int n;int visit[11],ans[11];void dfs(int depth){for(int i=1;i<=n;i++){if(visit[i]==0){visit[i]=1;ans[depth]=i;if(depth==n){for(int i=1;i<=n;i++)cout<<ans[i];cout<<endl;}elsedfs(depth+1);visit[i]=0;}}}int main(){while(cin>>n){memset(visit,0,sizeof(visit));dfs(1);}return 0;}*//*STL next_permutation(a+0,a+n)实现int main(){int n;char a[100];while(cin>>n){int num=1;for(int i=1;i<=n;i++)num*=i;for(int i=0;i<n;i++)a[i]='A'+i;for(int i=1;i<=num;i++){for(int j=0;j<n;j++)cout<<a[j];cout<<endl;next_permutation(a+0,a+n);}}}*/

1 0
原创粉丝点击