用java做一个“求集合子集的”算法。
我做了一个,就是效率太差了。不敢贴出来。大家能不能找到一个比较好的方法。效率高点的。 问题点数:40、回复次数:3Top
1 楼haides(-=★白吃★=-)回复于 2002-11-30 17:40:31 得分 0
public void getSubset(ArrayList set,ArrayList stack){
ArrayList arraylist = new ArrayList(set);
int i=0;
while (i < set.size()){
ArrayList settemp = new ArrayList(arraylist);
settemp.remove(i);
if (!settemp.isEmpty()){
if ((stack.indexOf(set)) < 0){stack.add(set);}
if ((stack.indexOf(settemp)) < 0){stack.add(settemp);}
System.out.println(settemp);
getSubset(settemp,stack);
}
else{if ((stack.indexOf(settemp)) < 0){stack.add(settemp);}}
i++;
}
}
大家看看哪里该优化?Top
2 楼wang_zheng_wz(我打开任督二脉)回复于 2002-12-01 01:19:52 得分 40
对ArrayList本身递归似乎不如对其index递归,就像对数组的下标Top
3 楼haides(-=★白吃★=-)回复于 2002-12-01 16:12:13 得分 0
对index递归可以,但是怎么判断新生成的集合在不在已经生成的里面了。Top




