用dfs实现1到n的全排列
来源:互联网 发布:网络诈骗形式 编辑:程序博客网 时间:2024/06/01 09:33
用dfs实现1到n的全排列。
我的做法是从第一个位置开始,用dfs找每个位置的数就好,
在某个位置的时候,从小到大枚举1到n的所有数,如果碰到
某个数之前没被用到就在这个位置选择这个数,然后搜索下个
位置的数值。
我的代码如下:
#include<iostream>#include<cstring>using namespace std;int perm[10000],used[10000],num;void init(){int i;memset(used,0,sizeof(used));scanf("%d",&num);for(i=0;i<num;i++)perm[i]=i+1;}void out(){int i;for(i=0;i<num;i++){if(i)printf(" ");printf("%d",perm[i]);}printf("\n");}void dfs(int pos){int i;if(pos==num){out();return;}for(i=1;i<=num;i++)if(!used[i]){perm[pos]=i;used[i]=1;dfs(pos+1);used[i]=0;}}void permutation(){init();dfs(0);}int main(){permutation();}
0 0
- 用dfs实现1到n的全排列
- 1到n的全排列实现
- 1- n , n个数的全排列(dfs)
- 深度优先搜索dfs之1到n的全排列
- 1到n的全排列
- 输出 1 到 n 的全排列
- 一个数n的全排列&&DFS
- 全排列 DFS实现
- 全排列 DFS实现
- DFS实现全排列
- DFS实现全排列
- dfs 实现全排列
- 打印1到最大的n位数:大数问题,全排列实现
- ACM-写出1到n的全排列
- 求1到n的全排列(搜索入门)
- 1到n全排列的真正复杂度
- 找出1到n所有不重复的排列,即n的全排列。
- 1-n的全排列
- error:在使用大于号之前忘记将大于号两边的类型转化为一致
- 杂类--------文字型码表(备份)
- mac osx终端批量删除文件
- Android下的声音录制
- Apache服务的工作原理
- 用dfs实现1到n的全排列
- linux内核2.6.3x--Executable file formats / Emulations、 Networking support
- Oracle服务器安装 第一次使用 安装命令
- Byte[]转换为字符串System.Text.Encoding.Default.GetString()尾部空‘\0’信息处理
- HDU 1016 Prime Ring Problem
- vm三种连接方式bridge, nat, host-only
- Android Studio科普篇——2.误区
- redis的java客户端Jedis简单封装
- 在Nginx下针对IP和目录限速