首页 > 学院 > 开发设计 > 正文

全排列

2019-11-06 06:08:17
字体:
来源:转载
供稿:网友

全排列类似与N皇后那个问题

1.用递归写

#include <iostream>#include <algorithm>#include <cstring>#include <string>using namespace std;const int M = 8;char str[M];char permutation[M];bool used[M] = {0};int L = 0;void Permutation(int n){ if( n == L ) { permutation[L] = 0; cout << permutation << endl; return ; } for(int i = 0;i < L; ++i) { if( !used[i]) { used[i] = true; permutation[n] = str[i]; Permutation(n+1); used[i] = false; } }}int main(){ cin >> str; L = strlen(str); sort(str,str+L); Permutation(0); return 0;}

2.使用STL的next_permutation库写

#include<iostream>#include<algorithm>#include<cstring>using namespace std;char a[10];int main(){ cin>>a; int h=strlen(a); sort(a,a+h); do { cout<<a<<endl; }while(next_permutation(a,a+h));//STL模板}
上一篇:C# 线程

下一篇:urlparse相关知识

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表