huyc

导航

2011年10月12日 #

生成字符串排列

摘要: 问题:给出一个函数来输出一个字符串的所有排列。想法:排列算法流行的有递归,置换,字典序法。1.递归算法,每个n排列是每个字符与n-1排列的结合。算法的核心部分是维持一个递归树,从树根到树叶的一条路径是一个排列。2.置换算法,基于置换群的理论,每完成一次置换生成一个排列。3.字典序法,每次生成排列的下一个排列,可以通过数值计数来模拟,当然也可以手工生成。实现:1.递归算法:#include <stdio.h>void swap(char *l, char *r){ char s = *l; *l = *r; *r = s;}void generate(char *buf, ch... 阅读全文

posted @ 2011-10-12 11:00 huyc 阅读(554) 评论(0) 推荐(0) 编辑