dfs实现数的全排列

时间:2022-08-27 12:55:26

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
bool vis[15];
int a[15];
int n;
void dfs(int x){
if(x==n+1){
for(int i=1;i<=n;i++)
cout<<a[i]<<' ';
cout<<endl;
return;
}
for(int i=1;i<=n;i++)
{
if(!vis[i]){
vis[i]=1;
a[x]=i;
dfs(x+1);
vis[i]=0;
}
}
return;
}
int main(){
while(cin>>n){
memset(vis,0,sizeof(vis));
dfs(1);
}
return 0;
}