分治法——求子集

题目:给定一个集合,求其子集。如{1,2,3},子集为(1,2,3),(1,2),(1,3),(1),(2,3),(2),(3),(空集)

思路:典型的分治法的思想。不过额外定义了一个与原数组相同长度的数组brr初始化全为0,通过修改brr中元素的值,最后根据brr的值来判断是否打印arr数组对应位置的元素,为0不打印,为1则打印。

分治法——求子集_第1张图片

代码实现:

void QiuZiJi(int arr[],int brr[],int i,int n)
{
	if(i==n)
	{
		for(int j=0;j

运行结果截图:

分治法——求子集_第2张图片

 

你可能感兴趣的:(算法)