2011年计算机二级C++辅导实例编程(20)

2014-10-20 13:30:03 · 作者: · 浏览: 70

  字母全排列快速算法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++)