考试网 >> IT认证 >> 等级 >> 等级动态 >> 常用算法设计方法2

常用算法设计方法2

发布时间:2006-07-25 12:02     点击:
分页:上一页  1 [2] 3 4 5 6 7 8 9 10  下一页  后10页

                     (7)4、3、2              (8)4、3、1              (9)4、2、1

                     (10)3、2、1

       分析所列的10个组合,可以采用这样的递归思想来考虑求组合函数的算法。设函数为void  comb(int m,int k)为找出从自然数1、2、……、m中任取k个数的所有组合。当组合的第一个数字选定时,其后的数字是从余下的m-1个数中取k-1数的组合。这就将求m个数中取k个数的组合问题转化成求m-1个数中取k-1个数的组合问题。设函数引入工作数组a[ ]存放求出的组合的数字,约定函数将确定的k个数字组合的第一个数字放在a[k]中,当一个组合求出后,才将a[ ]中的一个组合输出。第一个数可以是m、m-1、……、k,函数将确定组合的第一个数字放入数组后,有两种可能的选择,因还未去顶组合的其余元素,继续递归去确定;或因已确定了组合的全部元素,输出这个组合。细节见以下程序中的函数comb。

【程序】

# include <stdio.h>

# define   MAXN    100

int    a[MAXN];

void comb(int m,int k)

{     int i,j;

       for (i=m;i>=k;i--)

       {     a[k]=i;

              if (k>1)

                     comb(i-1,k-1);
分页:上一页  1 [2] 3 4 5 6 7 8 9 10  下一页  后10页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有