计算机程序设计艺术,4A组合算法J的实现:
void combineJ(int n, int t)
{
//C(n,t)
int c[COMBINE_MAXN]; //c[0] is not used
int j, i;
// Initializing
for (j = 1; j <= t; j++)
{
c[j] = j - 1;
}
c[t + 1] = n;
c[t + 2] = 0;
//main loop
for (;;)
{
//visit
for (i = t; i >= 1; i--)
{
printf("%d", c[i]);
}
printf("\n");
//Find j
j = 1;
while (c[j] + 1 == c[j + 1])
{
c[j] = j - 1;
j++;
}
//Done?
if (j > t)
{
break;
}
c[j]++;
}
}
本文介绍了一种名为组合算法J的计算机程序设计方法,该算法用于实现从整数n中选择t个元素的所有可能组合。文章通过一个具体的C语言程序示例详细解释了算法的工作原理及其实现过程。
1140

被折叠的 条评论
为什么被折叠?



