如数字1,2,3,4
想组合成
12
13
14
23
24
34请高手给个效率高点的算法。。

解决方案 »

  1.   

    int[] data = { 1, 2, 3, 4 };
    var query = from x in data
                from y in data
                where y > x
                select string.Format("{0}{1}", x, y);
    foreach (string item in query)
        Console.WriteLine(item);
      

  2.   

    or:
    int[] data = { 1, 2, 3, 4 };
    var query = from x in data
                from y in data
                where y > x
                select y * 10 + x;
    foreach (int item in query)
        Console.WriteLine(item);
      

  3.   

    我光把这些组合输出就需要1+2+3+...+n = n(n+1)/2次操作。
    那么组合一下也是这么多操作。O(n*n).
    还能怎么高效吗?