0
点赞
收藏
分享

微信扫一扫

深度优先遍历例题(排列数字)

陬者 2024-02-04 阅读 9

给定一个整数n,将数字1~n排成—排,将会有很多种排列方法。

现在,请你按照字典序将所有的排列方法输出。

输入格式

共一行,包含一个整数n。

输出格式

按字典序输出所有排列方案,每个方案占一行。数据范围

1≤n≤7

#include <iostream>
 
using namespace std;
 
const int N = 10;
 
int n;
int path[N];
bool st[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()
{
    cin >> n;
    dfs(0);
    return 0;
}


举报

相关推荐

0 条评论