列出所有K个元素的子集-----2013年1月26日
2013-01-26 09:21
239 查看
问题描述:列出一个集合的元素个数为k的所有子集。
思路:在字典顺序列出所有子集的基础上判断元素个数就可以了,比较简单。代码如下:
参考资料:《C语言名题精选百则技巧篇》
如果你觉得我的文章对你有帮助,请推荐一下,非常感谢!
思路:在字典顺序列出所有子集的基础上判断元素个数就可以了,比较简单。代码如下:
#include <stdio.h> #define MAX 1000 int main() { int n=5; int set[MAX]={1}; int index=0; int count=2; int k=3; while(set[0]!=n) { if(set[index]<n) { set[index+1]=set[index]+1; index++; } else { index--; set[index]++; } int a_index; count++; if(index==k-1) { printf("%d:{",count); for(a_index=0;a_index<=index;a_index++) printf("%d ",set[a_index]); printf("}\n"); } } return 0; }
参考资料:《C语言名题精选百则技巧篇》
如果你觉得我的文章对你有帮助,请推荐一下,非常感谢!
相关文章推荐
- 列出所有K个元素的子集-----2013年1月26日
- 列出所有K个元素的子集-----2013年1月26日
- 列出所有K个元素的子集
- 面试题: 已知一个含有n个不同元素的集合,要求打印其所有具有k个元素的子集(不允许有重复的)
- C++从1~m数字中任取k个元素,求所有组合算法
- 《数据结构、算法与应用》5.(递归输出n个元素的所有子集)
- 试编写一个递归函数,用来输出n 个元素的所有子集。
- (原創) 如何列出陣列中大於n的所有元素? (C/C++) (STL)
- Java实现集合的组合(从组合中取出K个元素进行组合的所有情况)
- [经典算法] 排列组合-N元素集合的所有子集(一)
- 列出所有子集(二进制递增方式)
- n个元素的所有子集(递归+非递归 +不去重)
- 列出所有的子集
- 输出一个集合所有子集的元素和(Print sums of all subsets of a given set)
- 列出所有子集(字典顺序)
- 从N个元素中取k个元素子集的c++实现
- 有一个集合A,它又n个元素,请用回溯法输出它所有的子集。
- 请给出一个时间为O(nlgk)、用来将k个已排序链表的算法。此处n为所有输入链表中元素的总数。
- 列出所有子集(格雷码顺序)
- 从N个元素中取k个元素子集的减治法实现