2011年计算机等级考试二级C++辅导实例编程(20)
字母全排列快速算法C代码 #
全排列,比如字母ABC,所有排列有A ,AB,AC,ABC,ACB,B,BA,BC,BAC,BCA,C,CA,CB,CAB,CBA.
#
//原理是插入, 在一个字符串的所有位置插入新字符.
#
//如: AB 插入C , 位置有 1A2B3, 插入后形成 CAB ACB ABC #
char *AllList(char *str, int *pNum)
#
{
#
int i, j, k, n;
#
int len = strlen(str);
#
int Total = 0;
#
int count, oldcount;
#
int size;
#
char *Buf;
#
char *p, *p1;
#
if (len > 10) return NULL; #
//计算总的组合数目
#
for (i = 0, j = 1; i < len; i++)
#