dfs
时间复杂度o(n)
参考文献
C++ 代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int n,state[10],path[10];
void dfs(int x){
if(x>n) {
for(int i=1;i<=n;i++){
cout<<path[i]<<" ";
}
cout<<endl;
return ;
}
for(int i=1;i<=n;i++){
if(!state[i]){
path[x]=i;
state[i]=1;
dfs(x+1);
state[i]=0;
}
}
}
int main()
{
cin>>n;
dfs(1);
}