生成1~n的全排列
来源:互联网 发布:联合国刚果行动知乎 编辑:程序博客网 时间:2024/05/17 08:37
记录下写的代码和题目方便自己不会忘记(递归部分确实不是很好懂)
#include<iostream>#include<string.h>using namespace std;void print(int n,int *p,int cur){ if(n==cur){ for(int i=0;i<cur;i++) cout<<p[i]<<" "; cout<<endl; } else for(int i=1;i<=n;i++){//在p[cur]里尝试各种数字i int flag=1; for(int j=0;j<cur;j++){ if(p[j]==i) flag=0;//若在p[j]出现过则将flag置零 } if(flag){ p[cur]=i; print(n,p,cur+1); } }}int main(){ int n,cur=0; cin>>n; int p[1000]; memset(p,0,sizeof(p)); print(n,p,cur); return 0;}
在此再附上stl里的一个全排列函数next_permutation(),很方便的函数
#include<iostream>#include<algorithm>using namespace std;int main(void){ int n,p[100],cur=0; cin>>n; for(int i=0;i<n;++i) p[i]=i+1; do{ for(int i=0;i<n;i++) cout<<p[i]<<" "; cout<<endl; } while(next_permutation(p,p+n)); return 0;}
0 0
- 生成1~n的全排列
- 生成1-n的全排列
- 生成1-N的全排列
- 生成1~n的全排列
- [紫书] 生成1~n的全排列
- 生成1~n的全排列
- 1-n的全排列
- 生成1~n的排列
- 生成1~n的排列
- 生成1-n的排列
- 生成1-n的排列
- 生成1~n的排列
- 生成1~n的排列
- 生成1~n的排列
- 生成1~n的排列
- 生成1~n的排列
- n的全排列
- n的全排列
- 500. Keyboard Row(判断字符串字符是否在一行)
- Jmeter 安装篇
- 为什么要做服务化
- linux 定时任务执行
- JAVA高级【1.2】《Java核心技术2》流与文件-字符集
- 生成1~n的全排列
- Maven基础配置—上传jar包到私服
- Pig-0.16.0的安装与配置
- HTML适应手机浏览器宽度
- hdu 1070 Milk
- mybatis--查询缓存
- 基于ARM的嵌入式Linux应用程序开发
- 移动web端使用腾讯地图实现定位功能
- 神经网络分类算法 数据挖掘