啊哈,算法! -----dfs1
2015-08-04 20:33
323 查看
问题:输入一个数n,输出1~n的全排序。(利用深度搜索)
题解:假设每个n个盒子去存储n个数字
代码实现
题解:假设每个n个盒子去存储n个数字
代码实现
#include<cstdio> #include<iostream> using namespace std; int a[10],book[10],n; void dfs(int step) { int i; if(step==n+1) //如果步数超过n+1证明排列已经完成 { for(i=1;i<=n;i++){ printf("%d",a[i]); } printf("\n"); return ;//返回调用处 } for(i=1;i<=n;i++){ if(book[i]==0)//用0来标记牌是否还在手上 { a[step]=i;//将牌放入step号盒子中 book[i]=1;//放进去对其进行标记 dfs(step+1);//递归调用 book[i]=0;清楚标记 } } return ; } int main() { scanf("%d",&n); dfs(1); return 0; }
相关文章推荐
- Spring--Spring容器
- [MetaHook] R_SparkShower
- [C++学习笔记]--成员对象和封闭类
- Mysql在大型网站的应用架构演变
- Haffman integration by java(Algorithm)
- 在eclipse下操作HDFS
- Redis的安装(CentOS 7下)
- SVN 版本控制
- HDU 4343 多查询求区间内的最大不相交区间个数-思维&贪心-卡时间&二分&剪枝
- Java套接字----------------
- springMVC中Controller的返回值处理和参数绑定
- python下selenium测试报告整合
- 多校-HDU 5351 MZL's Border 数学规律
- Oracle学习之DATAGUARD(六) 创建和启用Broker配置
- Java初学者最好理解的排序
- const成员函数和构造函数
- 数据结构实验之链表六:有序链表的建立
- 如何使用Createjs来编写HTML5游戏(二)使用EaselJS处理图片
- (4712)HDU
- Index