MATLAB用递归法求解集合子集,用递归法求一个集合的子集c语言,急!!!
匿名用户
1级
2014-04-09 回答
给你个参考代码:
#include <stdio.h>
#define ARRAY_SIZE 5
//输出Buffer集合
void Output(int *Buffer, int flag)
{
int i = 0;
for(i = 0; i <= flag; i++)
{
if (i == flag)
{
printf("%d", Buffer[i]);
}
else
{
printf("%d ", Buffer[i]);
}
}
printf("\n");
}
void bubble_sort(int *p, int p_size)
{
int i = 0, j = 0;
int tmp = 0;
for (i = p_size - 1; i > 0; i--)
{
for (j = 0; j < i; j++)
{
if (*(p + j) > *(p + j + 1))
{
tmp = *(p + j);
*(p + j) = *(p + j + 1);
*(p + j + 1) = tmp;
}
}
}
}
//找到元素在集合array中的位置
int Index(int *array, int x)
{
int i = 0;
for(i = 0; i <= ARRAY_SIZE-1; i++)
{
if(x == array[i])
{
return i;
break;
}
}
return -1;
}
void SubSet(int *array, int m, int *Buffer, int flag)
{
int i = 0;
if(m <= ARRAY_SIZE -1)
{
for(i = (flag == 0) ? 0 : Index(array, Buffer[flag-1])+1; i <= ARRAY_SIZE-1; i++)
//当flag==0时,Buffer中没有任何元素,此时i=[0...ARRAY_SIZE-1]
//当flag>0时,找到Buffer中的最后一个元素在集合array中的位置i,把[i....ARRAY_SIZE-1]
//处的元素,加到Buffer元素的最后面
{
Buffer[flag] = array[i];
Output(Buffer, flag);
SubSet(array, m + 1, Buffer, flag + 1);
}
}
return;
}
int main()
{
int i = 0;
int a[ARRAY_SIZE] = {0};
int Buffer[ARRAY_SIZE] = {0};
printf("Please input a array: \n");
for (i = 0; i < ARRAY_SIZE; i++)
{
scanf("%d", &a[i]);
}
bubble_sort(a, ARRAY_SIZE);
SubSet(a, 0, Buffer, 0);
return 0;
}
MATLAB用递归法求解集合子集,用递归法求一个集合的子集c语言,急!!!相关推荐
- 求一个集合的所有子集
题目描述 求一个集合的所有结合,例如集合{A,B,C}的所有子集为:{},{A,B,C},{A,B},{A,C},{B,C},{A},{B},{C}. 思路 实际上求子集问题是一个经典的DFS,每一次 ...
- 求一个集合的所有子集 Python实现
求一个集合的所有子集 Python实现 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Sat ...
- 递归算法之排列组合-求一个集合S的m个元素的组合和所有可能的组合情况
求一个集合S的m个元素组合的所有情况,并打印出来,非常适合采用递归的思路进行求解.因为集合的公式,本身就是递归推导的: C(n,m) = C(n-1,m-1) + C(n-1,m). 根据该公式,每次 ...
- 求一个集合的所有子集问题
一个包含n个元素的集合,求它的所有子集.比如集合A= {1,2,3}, 它的所有子集是: { {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}, @}(@表示空集 ...
- java set子集_Java程序来检查一个集合是否是另一个集合的子集
Java程序来检查一个集合是否是另一个集合的子集 在这个实例中,我们将学习Java中检查一个集合是否是另一个集合的子集. 要理解此示例,您应该了解以下Java编程主题: 示例1:使用HashSet类检 ...
- 求一个集合的所有子集问题实现
**问题描述 已知N个大于0的整数构成一个集合,即{1,2,3,--,N},求其所有的非空且元素不相邻的子集,计算所有子集的乘积的平方的和. 例如:集合{1,2,3,4},其所有非空不相邻子集有{1} ...
- 求一个集合的子集个数的方法
假设一个集合包含n个元素,要求计算该集合的子集个数. 该集合的所有子集,也叫该集合的幂集,比如集合{1,2,3}的所有子集为 空集,{1},{2},{3},{1,2},{1,3},{2,3},{1,2 ...
- 教你如何求一个集合的所有非空子集的方差和
/题目: 注:要求提交程序源代码和执行结果,编程语言不限. 1.对于一个大小为n的数集,求出该数集的每个"非空子集"的方差之和对10°+7取模的结果. 附件1说明:第一行一个正整数 ...
- 回溯法求解背包问题java_背包问题回溯法的递归实现(java)
0-1背包问题,在搜索过程中使用递归来完成. package com.test; class Pack { int n = 8; //物品个数 int W = 110; //背包总容量 int[] W ...
最新文章
- Facebook开源了超大规模图嵌入算法,上亿个节点也能快速完成
- 新冠肺炎疫情把科研推上“云端”
- 《精通Nginx》——2.3 使用include文件
- 口红竟超10000款,IT直男谁来拯救?(文末有惊吓)
- 性能测试关注点整理总结
- kubernetes1.8.4安装指南 -- 3. 安装docker ce
- 与Java EE和Camel的轻量级集成
- Android异常总结---W/System.err(661): java.lang.IllegalStateException: End of document.
- centos下 将(jgp、png)图片转换成webp格式
- tt按键精灵从入门到精通完整版
- android配置网络权限管理,Android 网络权限配置
- 2019年房价调整是大概率事件,如果房价下跌,会出现什么问题?
- 计算机桌面时间设置,电脑时间校准,教您怎么校正电脑时间
- 鞋长度和欧美的标准宽度换算表
- ppt如何转换成pdf
- 其实你也可以制作一款专属的书架app,信不信看看就知道
- Python挑战游戏( PythonChallenge)闯关之路Level- 3
- 计算机毕业设计系列基于SSM的个人博客管理系统
- 跟我一起玩Win32开发(2):完整的开发流程
- 小程序客服关闭自动回复功能后如何解决关注公众号