求集合的所有子集(java实现)

代码:

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

/*
 *Created on 2015年1月28日
 *Copyright 2015 Y. Cai Limited crop. All Rights Reserved
 *
 *7289***[email protected]
 */

public class Subset {
	public static void getSubset(int set[]) throws IOException
    {
		FileWriter writer = new FileWriter(new File("src/Result2.txt"));
        int length=set.length;//元素个数
        int num=(2<<set.length-1)-1;//非空子集个数
        for(int i=1;i<=num;i++)
        {
            System.out.print("[");
            int now=i;  //暂存正在判断第i种可能
            for(int j=0;j<=length-1;j++)
            {         
                if((now&1)==1)  //为1时表示该元素已经存在
                {
                    System.out.print(set[j]);
                    writer.write("" + set[j] + " ");
                }
                now=now>>1;   //依次判断下一位       
            }
            writer.write("\r\n");
            System.out.print("]");
        }
        writer.close();
    }
     
    public static void main(String[] args) throws IOException {
       int set[]={1,2,3,4};
       getSubset(set);
       
    }
}

运行结果:




你可能感兴趣的:(求集合的所有子集,求集合的所有子集java实现)