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++)
#