标签:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
//n个元素的全排列 #include "stdio.h" #define N 3 void fun( char ch[], int k){ //k: 当前的交换位置(关注点), 与其后的元素交换 int i; char t; if (k==N){ for (i=0; i<N; i++) printf ( "%c " , ch[i]); printf ( "\n" ); } for (i = k; i < N; i++){ t = ch[k]; ch[k]=ch[i]; ch[i]=t; //试探 fun(ch, k+1); t = ch[k]; ch[k]=ch[i]; ch[i]=t; //回溯 } } int main(){ char ch[N]={ ‘A‘ , ‘B‘ , ‘C‘ }; fun(ch, 0); return 0; } /*====================== 智商有限,想了好久才理清楚。 应该还有更好的办法。 注意ch[3]="ABC"与ch[3]={‘A‘,‘B‘,‘C‘}区别 */ |
标签:
原文地址:http://www.cnblogs.com/startnow/p/5055572.html