两两组合算法-递归实现方法

it2022-05-05  117

count = len(len-1)/n

arr={1,2,3}

len=3

n=2

组合的个数 count = len(len-1)/2 = 3(3-1)/2 =3

---------------------- 

得到的组合结果为

1,2

1,3

2,3

----------------------

using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace Testing {   class Program   {     static void Main(string[] args)     {       TestDoubleComposition();

      Console.ReadLine();     }

    static List<string> m_list;     /// <summary>     /// 两两组合算法     /// </summary>     static void TestDoubleComposition()     {       m_list = new List<string>();       List<string> list = new List<string>();       list.Add("1");       list.Add("2");       list.Add("3");       DoubleComposition(list);       m_list.ForEach(o => {         Console.WriteLine(o);       });     }

    /// <summary>     /// 两两组合算法     /// </summary>     static void DoubleComposition(List<string> arr)     {       if (arr == null || arr.Count <= 1)         return;

      string str = arr.First();       arr.RemoveAt(0);       arr.ForEach(o =>       {         m_list.Add(string.Format("{0},{1}",str,o));       });

      DoubleComposition(arr);     }   } }

转载于:https://www.cnblogs.com/xxj-jing/archive/2012/02/03/2890088.html


最新回复(0)