首页 > 代码库 > 求集合的子集
求集合的子集
package com.xsz.demo; /** * @author cwqi * @date 2014-11-19 下午9:55:31 */ public class SubSet { /** * 求集合的子集 * @param args */ public static void main(String[] args) { int array[] = {1,2,3}; SubSet.getSubSet(array); } private static void getSubSet(int[] array) { int len = array==null? 0:array.length; int total = (int)Math.pow(2,len)-1;//2的len次方-1,即子集的個數 int factor = (int)Math.pow(2,len-1);//2的len-1次方 for (int i = 0; i <=total; i++) { //subSetIndex轉成二進制后,1對應的array下標的元素為這個子集的元素 //如0101,對應的子集為{24} int subSetIndex =i; //輸出一個子集 int index = 0; System.out.print("{"); while (subSetIndex != 0) { if ((subSetIndex & factor) ==factor) { System.out.print(array[index]); } subSetIndex = subSetIndex<<1;//左移一位 index ++; } System.out.print("}"); System.out.println(); } } }
求集合的子集
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。