数组生成的所有集合
2012-09-01 20:21
155 查看
/************************************************************************/
/* 数组生成的所有集合
*/
/************************************************************************/
#include<iostream>
#include<vector>
using namespace std;
vector<int> v;
void print()
{
for (vector<int>::iterator iter = v.begin(); iter != v.end(); iter++)
cout << *iter << " ";
cout <<endl;
}
//获取指定长度的数组生成的集合
void get_set(int array[], int start, int end, int number)
{
if (start >= end) return;
v.push_back(array[start]);
if (v.size() == number)
{
print();
v.pop_back();
get_set(array, start+1, end, number);
return;
}else if(v.size() < number)
{
get_set(array, start+1, end, number);
}
v.pop_back();
get_set(array, start+1, end, number);
}
//数组生成的所有集合
void get_all_set(int array[], int len)
{
for (int i = 0; i < len; i++)
get_set(array, 0, len, i+1);
}
int main()
{
int array[] = { 1, 2, 3, 4,5};
get_all_set(array, sizeof(array) / sizeof(int));
return 0;
}
/* 数组生成的所有集合
*/
/************************************************************************/
#include<iostream>
#include<vector>
using namespace std;
vector<int> v;
void print()
{
for (vector<int>::iterator iter = v.begin(); iter != v.end(); iter++)
cout << *iter << " ";
cout <<endl;
}
//获取指定长度的数组生成的集合
void get_set(int array[], int start, int end, int number)
{
if (start >= end) return;
v.push_back(array[start]);
if (v.size() == number)
{
print();
v.pop_back();
get_set(array, start+1, end, number);
return;
}else if(v.size() < number)
{
get_set(array, start+1, end, number);
}
v.pop_back();
get_set(array, start+1, end, number);
}
//数组生成的所有集合
void get_all_set(int array[], int len)
{
for (int i = 0; i < len; i++)
get_set(array, 0, len, i+1);
}
int main()
{
int array[] = { 1, 2, 3, 4,5};
get_all_set(array, sizeof(array) / sizeof(int));
return 0;
}
相关文章推荐
- 给定一个集合(字符数组),打印出它的所有子集
- 生成一个集合的所有子集 Subset
- 递归,非递归生成数组的所有排列
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中最大值
- 经典重访: 如何按序生成集合的所有子集
- 工作总结 for 另类写法 循环加时间 集合合并 也是用的 static class Enumerable (IEnumerable<T>的扩展方法) (IEnumerable<T> 的 工具类) (所有集合 数组都实现IEnumerable<T>)
- 生成集合[n]的所有k-子集MATLAB代码
- 3.输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- java求子集和,给定数组求这个数组中某些数字相加等于某个值的所有可能集合
- 【转】递归生成集合的所有组合
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- [leetcode 46] Permutations------数组中元素的所有排列组合集合
- 生成一个集合的所有子集 Subset
- 1.输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值;
- 算法---求数组的所有集合
- 使用jQuery匹配文档中所有的li元素,返回一个jQuery对象,然后通过数组下标的方式读取jQuery集合中第1个DOM元素,此时返回的是DOM对象,然后调用DOM属性innerHTML,读取该元素 包含的文本信息
- 析JSON数组生成对象实体集合
- 根据数组,生成数组中元素的所有组合,(顺序,与非顺序)