暴力法生成1~n的排列
2014-07-07 12:24
162 查看
#include<iostream> using namespace std; void print_permutation(int n,int* A,int cur) { int i,j; if(cur==n) //结束条件,递归边界 { for(i=0; i<n; i++) cout<<" "<<A[i]; cout<<endl; } else for(i=1; i<=n; i++) //尝试在A[cur]中填各种整数i { int ok=1; for(j=0; j<cur; j++) if(A[j]==i) ok=0;//如果i已经在A[0]~A[cur-1]出现过,则不能再选 if(ok) { A[cur]=i; print_permutation(n,A,cur+1);//递归调用 } } } int main() { int n; int a[100]; while(cin>>n) { print_permutation(n,a,0); //初始条件 } return 0; }
相关文章推荐
- POJ 1833 生成排列
- 生成1-N的排列
- (DS1.5.9)POJ 1833 排列(生成当前排列的下一排列)
- 生成1~n的排列和生成可重集的排列
- 生成随机数,统计个数,按序排列
- 生成1~n的全排列
- 高效生成所有的排列
- 递归求解几类排列组合问题(五、生成全子集组合排列)
- 编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果
- 算法竞赛入门-枚举-7.2.1-生成1~n排列
- 算法入门经典 7.2.1(生成1 - n 的排列)
- 写一个函数,参数为$n,生成一个数组,其元素为1~$n,各元素位置随机排列,不得重复
- 全排列生成
- 数组中的数据随机排列的生成代码及方法
- 排列组合数生成算法
- Poj-1731 Orders(生成可重集的排列)
- (阿里笔试)使用多线程和sleep函数生成字符串的伪随机排列
- 生成可重集的排列
- 随机生成任意十个整数,分别利用冒泡和选择按从小到大排列。
- 生成1~n排列