有这个一个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的三次方的时间复杂度 ,请各位高手指教。。
一会贴出我的代码 ,谢谢 

解决方案 »

  1.   

    全排是O(n) 啊  o(3n) = o(n)。怎么是O(n3)哇先开辟一个3n的空间  然后每次往里面插入一个值 需要3个并列的循环就可以了  
    不需要循环套循环for()
      插入第一个位数11 12 13
    for()
      插入第二个
    for()
      3
      

  2.   

    写错了 先开辟3的3次方空间  NND
      

  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  需要改进的地方请老鸟指出。谢谢
      

  4.   

    你要随即输出组合的话   可以用Hashset()
      

  5.   

    因为每个元素都要涉级到
    时间复杂度O(N*N*N),简化不了的。