2017.5.3 4.全排列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017.5.3 4.全排列相关的知识,希望对你有一定的参考价值。

题目描述

给定N(N<10),按照字典序输出所有的N排列。
 

输入

第一行输入N。
 

样例输入

3

输出

输出1到N的全排列,一行一个排列,按照字典序顺序输出。
 

样例输出

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

基础DFS题


 1 #include<cstdio>
 2 #include<algorithm>
 3 using namespace std;
 4 
 5 int n;
 6 bool visit[20];
 7 int list[20];
 8 
 9 int DFS(int x)
10 {
11     if(x>n)
12     {
13         for(int i=1;i<=n;i++)
14             printf("%d ",list[i]);
15         printf("\n");
16         return 0;
17     }
18     for(int i=1;i<=n;++i)
19     {
20         if(visit[i]!=1)
21         {
22             visit[i]=true;
23             list[x]=i;
24             DFS(x+1);
25             visit[i]=false;
26             list[x]=0;
27         }
28     }
29     return 0;
30 } 
31 int main()
32 {
33     scanf("%d",&n);
34     DFS(1);
35     return 0;
36 }

 

 

以上是关于2017.5.3 4.全排列的主要内容,如果未能解决你的问题,请参考以下文章

蓝桥杯 三行代码解决 “全排列的价值”(2022省赛pythonA组)

蓝桥杯 三行代码解决 “全排列的价值”(2022省赛pythonA组)

全排列2

带重复的全排列问题

next_permutation 与 prev_permutation(全排列算法)

递归全排列