阅读背景:

1~n的全排列(深度优先搜索dfs)

来源:互联网 
#include<stdio.h>

/*
	变量说明:a[]-->相当于一个盒子 
				book[]-->用于标记
				n-->1~n个数的全排列 


*/
int a[10],book[10],n;


void dfs(int step)
{
	if(step>n){			// 退出条件 当盒子数 > n时 
		for(int i=1;i<=n;i++)
			printf("%d",a[i]);
		printf("\n");
		return;
	}
	
	for(int i=1;i<=n;i++){
		
		if(book[i]==0){
			a[step]=i;// 放入盒子 
			book[i]=1;// 标记这个牌已经走过 
			dfs(step+1);// 继续下一个盒子 
			book[i]=0;// 取消标记 
		}	
	}


}






int main()
{
	scanf("%d",&n);
	dfs(1);
	return 0;
} #include<stdio.h>

/*
	变量说明:a[]-->相当于一个盒子 
				



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: