正文

输出一个集合所有冪集的代码 2006-04-01 14:52:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/vfdff/11742.html

分享到:

 
public String[] getAll(int[] array) {
        
int n = Array.getLength(array);
        
int total = (int) Math.pow(2, n);
        Logger log 
= Logger.getLogger("myLog");
        log.info(
" the  total :" + total);
        String[] outArray 
= new String[total];
        
for (int i = 0; i < total; i++) {
            StringBuffer bs 
= new StringBuffer("");
            
for (int j = 0; j < n; j++) {
                
if (((i >> j) % 2== 1) {
                    bs.append(String.valueOf(Array.
get(array, j)));
                }
            }
            outArray[i] 
= bs.toString();
        }
        
return outArray;
    }


以上代码把生成的子集存放到一个字符串数组中,当集合的基数很大时,需要很大内存, 可以根据需要把上面程序改改不要放到数组中,而是边生成边使用

阅读(3237) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册