算法--生成子集

当需要求1~n内的整数集的所有子集时,我们首先例举一个n=3,它的所有元素有:1,2,3.。依次称为第一、二、三个元素,看它的生成子集有何规律:
{1,2,3};三个元素都有;
{1,2};有前两个元素;
{1,3};有第一、三个元素,第二个元素没有;
【算法--生成子集】{2,3};第一个元素没有,有后两个元素;
{1};只有第一个元素;
{2};只有第二个元素;
{3};只有第三个元素;
{}。都没有。
用0表示有,1表示没有,依次描述上面的子集:
1,1,1;这是1,1,1的全排列

-------------------------

1,1,0;
1,0,1;这是1,1,0的全排列

0,1,1;
-------------------------

1,0,0;
0,1,0;这是1,0,0的全排列
0,0,1;
-------------------------

0,0,0;这是0,0,0的全排列
即:数组int *arr=new int[n]中不同的0、1个数生成的全排列就是原子集中每个元素的存在状态,
通过判断存在状态可知该子集有哪些元素。

    推荐阅读