- 博客(3)
- 资源 (9)
- 收藏
- 关注
原创 用字典顺序得到所有的排列
RT :为了得到字典顺序的所有排列,我查了一些资料,发现有些说法好像有些问题,现在总结一下;【字典序法生成全排列】字典序列算法是一种非递归算法。而它正是STL中Next_permutation的实现算法。我们来看看他的思路吧:它的整体思想是让排列成为可递推的数列,也就是说从前一状态的排列,可以推出一种新的状态,直到最终状态。比如说,最初状态是12345,最终状态是54321。其实我觉得这跟我们手动做全排列是一样的。首先是12345,然后12354,然后12435,12453....逐渐地从后往前递增。看看算
2011-01-25 17:42:00 2255 4
原创 利用 格雷码(Gray code) 求集合的子集
<br />接着昨天的话题,求集合中的子集。<br /> <br />今天,我们可以找到另一种方法来求所有集合的子集。。。<br /> <br />先来段背景介绍:<br /><br />格雷码(Gray code),又叫循环二进制码或反射二进制码 在数字系统中只能识别0和1,各种数据要转换为二进制代码才能进行处理,格雷码是一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠
2011-01-22 14:27:00 1106
原创 位运算求子集数
一道求子集的题:具体就是算一个给出的集合中的所有的子集,有人用递归实现,不过我还是喜欢用位运算来做。原理是这样的,工具给出的集合的大小X,我们可以得到子集的大小:(1序号与数组中的每一位做运算,然后将结果写回数组。这里,数组的每一位1或者0(1代表输出),数组的大小由子集大小的二进制的位数决定,具体开代码:#include #include //// 求子集//#define MAX_SIZE 4int gArray[MAX_SIZE] = {0};int gAr
2011-01-21 15:48:00 1600
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人