Friday, April 08, 2011

Powerset Generation

package personal.puzzles;

import java.util.List;

/**
* Print all the subsets of a set
*
* @author madhuc
*
*/
public class PowerSet {

public void printAllSubsets(List<Integer> mySet) {
for (int i = 0; i < Math.pow(2.0, mySet.size()); ++i) {
String mask = Integer.toBinaryString(i);
for (int j = 0; j < mySet.size() - mask.length(); ++j) {
mask = '0' + mask;
}
printSubset(mask, mySet);
}
}

public void printSubset(String mask, List<Integer> mySet) {
int i = 0;
System.out.print("{");
for (char c: mask.toCharArray()) {
if ( c == '1') {
System.out.print(mySet.get(mySet.size() - 1 - i) + ",");
}
i++;
}
System.out.print("}\n");
}
}

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home