有这个一个List,集合元素为Set对象,每一个Set对象含有元素为Character。
设计一个算法得到Set对象所有元素可能组合。
例如:List中有3个set对象,
第一个set对象元素为11,12,13
第二个set对象元素为99,AA,B,DD
第三个set对象元素为7,8,34 那么可能组合为
11997,11998,119934,11AA7,11AA8,11AA34……我感觉 如果全排 那就是n的三次方的时间复杂度 ,请各位高手指教。。
一会贴出我的代码 ,谢谢
设计一个算法得到Set对象所有元素可能组合。
例如:List中有3个set对象,
第一个set对象元素为11,12,13
第二个set对象元素为99,AA,B,DD
第三个set对象元素为7,8,34 那么可能组合为
11997,11998,119934,11AA7,11AA8,11AA34……我感觉 如果全排 那就是n的三次方的时间复杂度 ,请各位高手指教。。
一会贴出我的代码 ,谢谢
不需要循环套循环for()
插入第一个位数11 12 13
for()
插入第二个
for()
3
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;public class Testlist { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Set set1=new TreeSet();
Set set2=new TreeSet();
Set set3=new TreeSet();
set1.add(11);
set1.add(12);
set1.add(13);
set2.add("99");
set2.add("AA");
set2.add("B");
set2.add("DD");
set3.add(7);
set3.add(9);
set3.add(34);
Iterator it1=set1.iterator();
while(it1.hasNext()) {
Object o1=it1.next();
Iterator it2=set2.iterator();
while(it2.hasNext()) {
Object o2=it2.next();
Iterator it3=set3.iterator();
while(it3.hasNext()){
Object o3=it3.next();
System.out.print(o1.toString()
+o2.toString()
+o3.toString()+" ");
}
}
}
}}我写的 新手刚学习JAVA 需要改进的地方请老鸟指出。谢谢
时间复杂度O(N*N*N),简化不了的。