子集生成

其实这个东西还是比较简单啦,但是有一些很妙妙的方法,因为博主今天没有时间,所以以后再做介绍。

先介绍最基本的方法。

增量构造法

一次选出一个元素放入集合中:

代码如下:

#include<bits/stdc++.h>
using namespace std;
int a[10000];
void p_search(int v,int n)
{
	if(v!=1)
	{
		for(int i=1;i<v;++i)
		{
			cout<<a[i]<<" ";
		}
		cout<<endl;
	}
	for(int i=a[v-1]+1;i<=n;++i)
	{
		a[v]=i;
		p_search(v+1,n);
	}
}
int main()
{
	int n;
	cin>>n;
	p_search(1,n);
	//cout<<p_search(n);
}
原文地址:https://www.cnblogs.com/mudrobot/p/13331304.html