解决数字的全排列问题(dfs)

Posted 最爱小崔同学

tags:

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

//排列数字
#include<iostream>
using namespace std;
const int N=10;
int n;
bool st[N];
int path[N];
void dfs(int u)
{
    if(u==n) 
    {
        for(int i=0;i<n;i++)
        {
            printf("%d",path[i]);
        }
        puts("");
        return ;
    }
    for(int i=1;i<=n;i++)
    {
        if(!st[i])
        {
            path[u]=i;
            st[i]=true;
            dfs(u+1);
            st[i]=false;
        }
    }
}
int main()
{    
    scanf("%d",&n);
    dfs(0);
    return 0;
}
 

以上是关于解决数字的全排列问题(dfs)的主要内容,如果未能解决你的问题,请参考以下文章

python实现基础的深度优先搜索(DFS, depth first search)解决数的全排列问题

用DFS 解决全排列问题的思想详解

DFS 之 全排列

STL中的全排列实现

DFS_46. 全排列

深搜-----1~n的全排列