DFS全排列

dfs全排列

更新对全排列递归方法的理解

u是一个局部变量,它是用来指向每一条排列序列的元素的
st是全局变量数组,它能保证每一条单独的线路不发生重复

DFS全排列

如上图所示最初u是要从1到n(第一行的1、2、3)逐序遍历的,但是指向1的时候u要先进行深度,到达下一层的时候它想要向右走(1、2、 ——> 1、3、),但是又要先深度到下一层,直到最后一层后才可以回溯。

#include<bits stdc++.h>
using namespace std;

int n, e[8], path[8], idx = 0;
bool st[8];

void dfs(int u){
    if(u == n){
        for(int i=0; i<n; i++) printf("%d ", path[i]); puts(""); } for(int i="1;" i<="n;" i++){ if(!st[i]){ path[u]="i;" st[i]="true;" dfs(u + 1); int main(){ cin>> n;
    dfs(0);

    return 0;
}
</n;></bits>

Original: https://www.cnblogs.com/livefly/p/15068332.html
Author: ture?
Title: DFS全排列

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/584033/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球