输入一个数n,然后将从1到n的数全排列输出
深度优先搜索,我觉得特别好用,这个代码也是从书上看的,《啊哈算法》,啊哈.磊著,真滴特别好。
#include<stdio.h>
int a[110],book[110],n;
void dfs(int step){
if(step==n+1){
for(int i=0;i<n;i++){
printf("%d",a[i]);
}
printf("\n");
}
for(int i=0;i<n;i++){
if(book[i]==0){
a[i]=step;
book[i]=1;
dfs(step+1);
book[i]=0;
}
}
}
int main(){
scanf("%d",&n);
dfs(1);
return 0;
}