Files
python/C++专题课程/深度优先搜索/顺序输出全排列.cpp
HuangHai 1f397eca87 'commit'
2025-08-30 18:35:01 +08:00

32 lines
489 B
C++

#include<iostream>
#include<cmath>
using namespace std;
int p[10]= {0};
bool vis[10]= {0};
int n;
void dfs(int x) {
if (x==n+1) {
for(int i=1; i<=n; i++)
cout<<p[i]<<" ";
cout<<endl;
return ;
}
//顺序输出全排列 (剪枝)
for (int i=1; i<=n; i++) {
if (vis[i]==false && i>p[x]) { //加上这句代码,也就是剪枝,可以避免下面的递归
p[x] = i;
vis[i] = true;
dfs(x+1);
vis[i] = false;
}
}
}
int main() {
n=4;
dfs(1);
return 0;
}