2009年1月15日 沈阳 晴
为解决1月7日遇到的排列组合的难题,进行了以下题目的研究,并用C#实现了一个非递归的算法。
有一个List,List中存有N个对象,要求做出这N个对象所有无序组。
数学公式:组合数=C(n,1) + C(n,2) + ...... + C(n,n)
C#的算法实现:
一.组合生成器:
using System;
using System.Collections.Generic;
using System.Text;
namespace CollectionApp
{
public class CombinationMaker<T>
{
//T类型元素组合表
public Dictionary<string, List<T>> CombinationTable;
public CombinationMaker()
{
//
}
//在组合表中添加新元素
public void addElement(T ce)
{
try
{
//元素组合表是空的场合
if (CombinationTable == null)
{