用java的vector类递归方法实现幂集
时间: 2024-05-12 08:18:32 浏览: 84
Factorial:递归求解阶乘简介
可以的,以下是示例代码:
```
import java.util.Vector;
public class PowerSet {
public static Vector<Vector<Integer>> powerSet(Vector<Integer> originalSet) {
Vector<Vector<Integer>> sets = new Vector<>();
if (originalSet.isEmpty()) {
sets.add(new Vector<Integer>());
return sets;
}
Integer head = originalSet.firstElement();
Vector<Integer> rest = new Vector<>(originalSet.subList(1, originalSet.size()));
for (Vector<Integer> set : powerSet(rest)) {
Vector<Integer> newSet = new Vector<>();
newSet.add(head);
newSet.addAll(set);
sets.add(newSet);
sets.add(set);
}
return sets;
}
public static void main(String[] args) {
Vector<Integer> set = new Vector<>();
set.add(1);
set.add(2);
set.add(3);
Vector<Vector<Integer>> powerSet = powerSet(set);
for (Vector<Integer> subset : powerSet) {
System.out.println(subset);
}
}
}
```
这个程序使用了递归来生成幂集,时间复杂度为 O(2^n)。注意,这个程序实现的是整数集合的幂集,如果要用于其他类型的集合,需要修改实现。
阅读全文