啊哈算法-不撞南墙不回头-深度优先搜索
配合for循环和递归进行搜索 深度优先搜索侧重于将当下如何做,然后利用递归不断进行“当下”,直到基准情况返回。
下面代码 输入一个数字(1-9)输出 123...n的全排列
#include<stdio.h> void put(int n); int num,a[10],book[10],count=0; int main(){ scanf("%d",&num); put(1); return 0; } void put(int n){ if(n==num+1){ for(int i=1;i<=num;i++) printf("%d",a[i]); count++; printf(" "); if(count%5==0) printf("\n"); return ; } else{ for(int i=1;i<=num;i++){ if(book[i]==0){ a[n]=i; book[i]=1; put(n+1); book[i]=0; } } } }