列举一个n元集合的所有子集的思路要求用java实现列举一个n元集合的所有子集,一点头绪也没有,小妹拜谢!
网友回答
你试试能不能用~
import java.util.BitSet;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class FindSubset {
private BitSet start;
private BitSet end;
private Set subsets;
public FindSubset() {
this.start = new BitSet();
this.end = new BitSet();
this.subsets = new HashSet();
} public void execute(int n, Set items) {
int size = items.size();
for (int i = 0; i start.set(i, true);
} for (int i = n; i start.set(i, false);
} for (int i = size - 1; i > size - n; i--) {
end.set(i, true);
} for (int i = 0; i end.set(i, false);
} find(items);
while (start != end) {
boolean endBit = start.get(size - 1);
int last10 = -1;
int i; for (i = size - 1; i > 0; i--) {
boolean former = start.get(i - 1);
boolean last = start.get(i);
if (former == true && last == false) {
last10 = i - 1;
break;
} } if (i == 0) { break; } else { if (endBit == false) { start.set(last10, false); start.set(last10 + 1, true); find(items); } else {