输出全排列 (20 分)(dfs模板题)

简介: 输出全排列 (20 分)(dfs模板题)

请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。


输入格式:

输入给出正整数n(<10)。


输出格式:

输出1到n的全排列。每种排列占一行,数字间无空格。排列的输出顺序为字典序,即序列a1,a2,⋯,an排在序列b1,b2,⋯,bn之前,如果存在k使得a1=b1,⋯,ak=bk 并且 ak+1<bk+1。


输入样例:

3

结尾无空行


输出样例:

1. 123
2. 132
3. 213
4. 231
5. 312
6. 321

结尾无空行


#include<iostream>
using namespace std;
int path[10],vis[10],n;
void dfs(int u)
{
    if(u>n)
    {
        for(int i=1;i<=n;i++) cout<<path[i];
        cout<<endl;
    }
    for(int i=1;i<=n;i++)
    {
        if(!vis[i])
        {
            path[u]=i;
            vis[i]=1;
            dfs(u+1);
            vis[i]=0;//恢复现场
        }
    }
}
int main()
{
    cin>>n;
    dfs(1);
    return 0;
}
目录
相关文章
|
移动开发 算法
DFS深度优先算法 —— AcWing 842. 排列数字AcWing 843. n-皇后问题
DFS深度优先算法 —— AcWing 842. 排列数字AcWing 843. n-皇后问题
103 0
leetcode剑指offer53–n-1中缺失的数字(二分//or等差数列)
leetcode剑指offer53–n-1中缺失的数字(二分//or等差数列)
八皇后(dfs全排列)
八皇后(dfs全排列)
83 0
|
机器学习/深度学习
(dfs剪枝)(递归)1209. 带分数
(dfs剪枝)(递归)1209. 带分数
80 0
|
机器学习/深度学习 Java
【每日一题Day64】LC1799N 次操作后的最大分数和 | 状态压缩dp 状态压缩+dfs+记忆化搜索
每个数字有两种状态,删除或者未删除,因此可以使用状态压缩记录未删除的数字情况state,便于使用位运算进行状态的遍历及转移;使用状态压缩dp找到将所以数字删除的最大分数
103 0
【每日一题Day64】LC1799N 次操作后的最大分数和 | 状态压缩dp 状态压缩+dfs+记忆化搜索
L3-008 喊山 (30 分)(bfs)
L3-008 喊山 (30 分)(bfs)
102 0
L3-008 喊山 (30 分)(bfs)
|
存储
L2-031 深入虎穴 (25 分)(bfs)
L2-031 深入虎穴 (25 分)(bfs)
203 0
L2-031 深入虎穴 (25 分)(bfs)
洛谷P3360 ——偷天换日(dfs读入+树形DP+01背包)
洛谷P3360 ——偷天换日(dfs读入+树形DP+01背包)
92 0
L2-026 小字辈 (25 分)(bfs)
L2-026 小字辈 (25 分)(bfs)
127 0
|
算法
正整数n不同分解式的个数(DFS)
正整数n不同分解式的个数(DFS)
215 0