读书人

集合的全排列

发布时间: 2012-10-06 17:34:01 作者: rapoo

求一个集合的全排列

#include <iostream>using namespace std;const int _N = 10000;int d[_N], p[_N];bool flag[_N];int n;void dfs(int pos){int i;if(pos == n){for(i = 0; i < n; i++)cout<<d[i]<<" ";cout<<endl;return;}for(i = 0; i < n; i++){if(!flag[i]){flag[i] = true;d[pos] = p[i];dfs(pos + 1);flag[i] = false;}}}int main(){int i;cin>>n;memset(flag, false, sizeof(flag));for(i = 0; i < n; i++)p[i] = i + 1;dfs(0);return 0;}

输入3
输出
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

读书人网 >编程

热点推荐