//用于求全排序的经典算法“后补法”,代码如下:
#include <stdio.h>
#include <conio.h>
#include <string.h>
void Permutation(char* a, int m, int n)
{
int i;
char t;
if (m < n-1)
{
Permutation(a, m + 1, n);
for (i = m + 1; i < n; i++)
{
t = a[m];
a[m] = a[i];
a[i] = t;
Permutation(a, m + 1, n);
t = a[m];
a[m] = a[i];
a[i] = t;
}
}
else
{
printf("%s/n",a);
}
}
int main()
{
char a[]="ABC";
Permutation(a,0,strlen(a));
getch();
}
//Permutation说明
//输入:
//参数1,为构造全排列所需要的字符;
//参数2,全排列所需要字符从参数1的第几个下标算起(前面忽略),一般为0
//参数3,全排列构造字符长度,一般为参数1中的字符数量
//输出:ABC的全排列。