排列数字(dfs)

排列数字

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

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

输入格式

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

输出格式

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

数据范围

1≤n≤7

输入样例:

3

输出样例:

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

cpp 复制代码
#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]);
        printf("\n");
        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;
}
相关推荐
老大白菜26 分钟前
python 插入排序(Insertion Sort)
python·算法·排序算法
苍墨穹天27 分钟前
大模型算法题(2)
人工智能·算法
打不了嗝 ᥬ᭄30 分钟前
位运算与操作符应用
数据结构·算法·leetcode·蓝桥杯
风染yeye1 小时前
区块链期末复习3:跨链原子交换&其他加密货币
算法·区块链·密码学·分布式账本
Coovally AI模型快速验证1 小时前
清华发布Hyper-YOLO:超图计算+目标检测!捕捉高阶视觉关联
人工智能·算法·yolo·机器学习·目标跟踪·超图计算
h0l10w1 小时前
LeetCode【剑指offer】系列(数组篇)
c++·算法·leetcode
就爱学编程1 小时前
力扣刷题:栈和队列OJ篇(上)
算法·leetcode·职场和发展
岸榕.1 小时前
389 摆花
数据结构·c++·算法
LDG_AGI2 小时前
【深度学习】多目标融合算法—样本Loss提权
人工智能·深度学习·神经网络·算法·机器学习·迁移学习·推荐算法
扫地羊2 小时前
C语言插入排序及其优化
c语言·算法·排序算法