排列和组合算法的实现方法_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 红包祝福语简短10字
18 周六早晨祝福语简短