排列数字(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;
}
相关推荐
Ritsu栗子9 分钟前
代码随想录算法训练day63---图论系列7《prim算法&kruskal算法》
c++·算法·图论
一只码代码的章鱼16 分钟前
数据结构与算法-图论-最短路-单源最短路的建图方式
算法·图论
黄金龙PLUS25 分钟前
十分简单的流密码算法RC4
算法·网络安全·密码学·哈希算法·同态加密
我想吃余30 分钟前
【初探数据结构】时间复杂度和空间复杂度
数据结构·算法
a_j5830 分钟前
算法与数据结构(环形链表II)
数据结构·算法·链表
愚戏师1 小时前
从零到一学习c++(基础篇--筑基期十一-类)
开发语言·数据结构·c++·学习·算法
小仙有礼了2 小时前
ArcGis for js 4.x实现测量,测距,高程的功能
javascript·算法·arcgis
轩源源2 小时前
unordered_set和unordered_map的使用
开发语言·数据结构·c++·算法·哈希算法·unordered_map·unordered_set
白白糖3 小时前
Day 49 卡玛笔记
python·算法·力扣
01_3 小时前
力扣hot100——岛屿数量 岛屿问题经典dfs总结
算法·leetcode·dfs