排列和组合算法的实现方法_C语言经典案例
排列和组合算法是考查递归的常见算法,这两种算法能用递归简洁地实现。
本人在经过多次摸索和思考之后,总结如下,以供参考。
程序代码如下:
#include<stdio.h>
#include<stdlib.h>
chararray[]="abcd";
#defineN4
#defineM3
intqueue[N]={0};
inttop=0;
intflag[N]={0};
voidperm(ints,intn)
{
inti;
if(s>n)
{
return;
}
if(s==n)
{
for(i=0;i<n;i++)
{
printf("%c",queue[i]);
}
printf("\t");
return;
}
for(i=0;i<n;i++)
{
if(flag[i]==0)
{
flag[i]=1;
queue[s]=array[i];
perm(s+1,n);
flag[i]=0;
}
}
}
voidcomb(ints,intn,intm)
{
inti;
if(s>n)
return;
if(top==m)
{
for(i=0;i<m;i++)
{
printf("%c",queue[i]);
}
printf("\t");
return;
}
queue[top++]=array[s];
comb(s+1,n,m);
top--;
comb(s+1,n,m);
}
intmain()
{
printf("\nperm():\n");
perm(0,N);
printf("\ncombination():\n");
comb(0,N,M);
printf("\n");
return0;
}
运行结果:
perm(): abcdabdcacbdacdbadbcadcbbacdbadcbcadbcda bdacbdcacabdcadbcbadcbdacdabcdbadabcdacb dbacdbcadcabdcba combination(): abcabdacdbcd
以上就是小编为大家带来的排列和组合算法的实现方法_C语言经典案例的全部内容了,希望对大家有所帮助,多多支持毛票票~
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短