C#组合的递归算法

《C#组合的递归算法》
private
 
string
 combine(
int
[] a, 
int
 n, 
int
 m, 
int
[] b, 
int
 M)
《C#组合的递归算法》《C#组合的递归算法》    


{
《C#组合的递归算法》        
string all = “”;
《C#组合的递归算法》        
for (int i = n; i >= m; i)   // 注意这里的循环范围
《C#组合的递归算法》《C#组合的递归算法》
        {
《C#组合的递归算法》            b[m 
 1= i  1;
《C#组合的递归算法》            
if (m > 1)
《C#组合的递归算法》                all
+=combine(a, i  1, m  1, b, M);
《C#组合的递归算法》            
else                     // m == 1, 输出一个组合
《C#组合的递归算法》《C#组合的递归算法》
            {
《C#组合的递归算法》                
for (int j = M  1; j >= 0; j)
《C#组合的递归算法》                    all 
+= a[b[j]].ToString() +  ;
《C#组合的递归算法》                all 
+=  ;
《C#组合的递归算法》            }

《C#组合的递归算法》        }

《C#组合的递归算法》        
return all;
《C#组合的递归算法》    }


《C#组合的递归算法》

private
 
void
 show(
int
 n)
《C#组合的递归算法》《C#组合的递归算法》    


{
《C#组合的递归算法》        
int[] a = new int[n];
《C#组合的递归算法》        
string showall = “”;
《C#组合的递归算法》        
for (int i = 0; i < n; i++)
《C#组合的递归算法》《C#组合的递归算法》        
{
《C#组合的递归算法》            a[i]
=i;
《C#组合的递归算法》        }

《C#组合的递归算法》        
for (int i = 0; i < n; i++)
《C#组合的递归算法》《C#组合的递归算法》        
{
《C#组合的递归算法》            
int[] b=new int[i+1];
《C#组合的递归算法》            showall 
+= combine(a, n, i+1, b, i+1);
《C#组合的递归算法》        }

《C#组合的递归算法》        
this.TextBox1.Text = showall;
《C#组合的递归算法》    }


《C#组合的递归算法》
用递归实现所有组合的算法!

    原文作者:递归算法
    原文地址: https://blog.csdn.net/wzq6511/article/details/2346406
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞