应用递归思想求全排列
#include <stdio.h>
#define max 100
3:
int m)
5: {
int i, j, k, flag = 0;
/*数组b存放子序列*/
8:
for(i = 0; i < n; i++)
10: {
11: flag = 1;
/*复制数列a中第i个元素到数组r*/
13: j = 0;
/*产生子序列b*/
15: {
if(i != k)
17: {
18: b[j] = a[k];
19: j++;
20: }
21: }
/*全排列子序列b*/
23: }
24:
if(flag == 0)
/*得到一种排列结果*/
);
for(k = 0; k < m; k++)
/*输出存放排列结果的数组r中的内容*/
);
31: }
32: }
33:
int main()
35: {
int a[max] , r[max];
int i, n;
);
/*输入待排列的数列中元素的个数*/
);
/*输入数列中的元素(整数)*/
, &a[i]);
/*全排列操作*/
return 0;
45: }
46: