匿名用户

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语言,急!!!相关推荐

  1. 求一个集合的所有子集

    题目描述 求一个集合的所有结合,例如集合{A,B,C}的所有子集为:{},{A,B,C},{A,B},{A,C},{B,C},{A},{B},{C}. 思路 实际上求子集问题是一个经典的DFS,每一次 ...

  2. 求一个集合的所有子集 Python实现

    求一个集合的所有子集 Python实现 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Sat ...

  3. 递归算法之排列组合-求一个集合S的m个元素的组合和所有可能的组合情况

    求一个集合S的m个元素组合的所有情况,并打印出来,非常适合采用递归的思路进行求解.因为集合的公式,本身就是递归推导的: C(n,m) = C(n-1,m-1) + C(n-1,m). 根据该公式,每次 ...

  4. 求一个集合的所有子集问题

    一个包含n个元素的集合,求它的所有子集.比如集合A= {1,2,3}, 它的所有子集是: { {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}, @}(@表示空集 ...

  5. java set子集_Java程序来检查一个集合是否是另一个集合的子集

    Java程序来检查一个集合是否是另一个集合的子集 在这个实例中,我们将学习Java中检查一个集合是否是另一个集合的子集. 要理解此示例,您应该了解以下Java编程主题: 示例1:使用HashSet类检 ...

  6. 求一个集合的所有子集问题实现

    **问题描述 已知N个大于0的整数构成一个集合,即{1,2,3,--,N},求其所有的非空且元素不相邻的子集,计算所有子集的乘积的平方的和. 例如:集合{1,2,3,4},其所有非空不相邻子集有{1} ...

  7. 求一个集合的子集个数的方法

    假设一个集合包含n个元素,要求计算该集合的子集个数. 该集合的所有子集,也叫该集合的幂集,比如集合{1,2,3}的所有子集为 空集,{1},{2},{3},{1,2},{1,3},{2,3},{1,2 ...

  8. 教你如何求一个集合的所有非空子集的方差和

    /题目: 注:要求提交程序源代码和执行结果,编程语言不限. 1.对于一个大小为n的数集,求出该数集的每个"非空子集"的方差之和对10°+7取模的结果. 附件1说明:第一行一个正整数 ...

  9. 回溯法求解背包问题java_背包问题回溯法的递归实现(java)

    0-1背包问题,在搜索过程中使用递归来完成. package com.test; class Pack { int n = 8; //物品个数 int W = 110; //背包总容量 int[] W ...

最新文章

  1. Facebook开源了超大规模图嵌入算法,上亿个节点也能快速完成
  2. 新冠肺炎疫情把科研推上“云端”
  3. 《精通Nginx》——2.3 使用include文件
  4. 口红竟超10000款,IT直男谁来拯救?(文末有惊吓)
  5. 性能测试关注点整理总结
  6. kubernetes1.8.4安装指南 -- 3. 安装docker ce
  7. 与Java EE和Camel的轻量级集成
  8. Android异常总结---W/System.err(661): java.lang.IllegalStateException: End of document.
  9. centos下 将(jgp、png)图片转换成webp格式
  10. tt按键精灵从入门到精通完整版
  11. android配置网络权限管理,Android 网络权限配置
  12. 2019年房价调整是大概率事件,如果房价下跌,会出现什么问题?
  13. 计算机桌面时间设置,电脑时间校准,教您怎么校正电脑时间
  14. 鞋长度和欧美的标准宽度换算表
  15. ppt如何转换成pdf
  16. 其实你也可以制作一款专属的书架app,信不信看看就知道
  17. Python挑战游戏( PythonChallenge)闯关之路Level- 3
  18. 计算机毕业设计系列基于SSM的个人博客管理系统
  19. 跟我一起玩Win32开发(2):完整的开发流程
  20. 小程序客服关闭自动回复功能后如何解决关注公众号

热门文章

  1. 树还没有叶子的飞鸽传书
  2. 对于成功的GDUUU商人来说
  3. GM也坐不住了的s9t9
  4. H618B刷了tomato0530版本 呵呵,测试一下
  5. 驱动程序的专业术语-秋镇菜版
  6. 【IPC-钩子】WM_COPYDATA和鼠标钩子小程序
  7. 创建自定义的Visual Studio项模板
  8. 没想到啊!3980元的Web前端视频今日免费送。
  9. 第四节:5种数据类型在TypeScript中的运用
  10. 为什么程序员的社会地位不高?