原文链接: c语言dfs解决全排列问题
上一篇: c语言dfs解决n皇后问题
下一篇: C#实现汉诺塔
如1,2,3三个元素的全排列为:
1,2,3
1,3,2
2,1,3
2,3,1
3,1,2
3,2,1
共3*2*1=6种
代码简单实现n个元素的全排列
#include <stdio.h>
#define N 5
int a[100]; //存放数字序列
int mark[100]; //判断数字是否使用过,mark[3]=1表示3这个数字能用
int count;
void dfs(int i,int a[N]);
int main(int argc, char *argv[])
{
int i;
for(i=0;i<=N;i++){ //多初始化一位
mark[i]=1; //1代表该数可以使用
a[i]=0; //初始化序列
}
dfs(0,a); //没有数字放入a中
printf("hava %d nums\n",count);
return 0;
}
void dfs(int i,int a[N]){
if(i==N){ /