题目:
求ABCDEF全排列的输出(DFS,深度优先算法)
2016-11-15
1 #include <stdio.h> 2 #include <stdlib.h> 3 //把ABCDEF的全排列输出出来 4 int b[6]={};//用于存储全排列后的数据 5 int count;//用于存放排列次数的计数器 6 char a[6]={'A','B','C','D','E','F'}; 7 int max_num=0; 8 9 bool issafe(int x,int y){ 10 bool ret = true; 11 for(int i=0;i<x;i++) 12 { 13 if(a[y]==b[i]) 14 ret = false; 15 } 16 return ret; 17 } 18 int All_Sort(int step) 19 { 20 int i; 21 if(step ==6) 22 { 23 for(i=0;i<6;i++){ 24 printf("%c",b[i]); 25 } 26 printf(" "); 27 max_num++; 28 return 1; 29 30 } 31 for(i=0;i<6;i++){ 32 if(issafe(step,i)){ 33 b[step] = a[i]; 34 All_Sort(step+1); 35 } 36 } 37 } 38 void main() 39 { 40 int i; 41 All_Sort(0); 42 printf("%d",max_num); 43 44 system("pause"); 45 }