文档章节

数组(全部子集)一

老汉-憨憨
 老汉-憨憨
发布于 2017/03/28 15:42
字数 198
阅读 14
收藏 0
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int printSubsequences(int arr[], int len)
{
    unsigned int opsize = pow(2, len);
    int cnt;
    int j;
    for (cnt = 0; cnt < opsize; cnt++)
    {   
        printf("{ ");
        for (j = 0; j < len; j++) {
            if (cnt & (1 << j)) {
                printf("%d ", arr[j]);
            }   
        }   
        printf("}\n");
    }   
    return 0;
}

int main(int argc, char *argv[])
{
    int arr[] = {1, 2, 3}; 
    int len = sizeof(arr) / sizeof(arr[0]);
    printSubsequences(arr, len);
    return 0;
}

输出结果:

{ }
{ 1 }
{ 2 }
{ 1 2 }
{ 3 }
{ 1 3 }
{ 2 3 }
{ 1 2 3 }

 

原理:

数组元素个数  为  3 ,那么 全部子集有  2**3 = 8 个, 使用 位图表示,其中 位为 1 表示数组下标对应的位置。

0 0 0  => { }

0 0 1  => { 1 }

0 1 0 => { 2 }

0 1 1 => { 1, 2}

1 0 0 => { 3 }

1 0 1 =>{1 , 3}

1 1 0 => {2 , 3}

1 1 1 => {1, 2, 3}

© 著作权归作者所有

下一篇: 数组反转
老汉-憨憨
粉丝 20
博文 322
码字总数 68382
作品 0
深圳
程序员
私信 提问
Round #504 D. Array Restoration

题目:http://codeforces.com/contest/1023 对于一个长度n的数组进行q次查询,i从1到q,第i次将任意一段连续的部分全部染成i。 最后得到的数组中可能会存在“污点”0.即最后对数组的任意子集s...

零原创
2018/08/18
0
0
快速排序(Quicksort)的Javascript实现

日本程序员norahiko,写了一个排序算法的动画演示,非常有趣。 这个周末,我就用它当做教材,好好学习了一下各种排序算法。 排序算法(Sorting algorithm)是计算机科学最古老、最基本的课题...

阮一峰
2011/04/04
0
0
快速排序(Quicksort)的Javascript实现

日本程序员norahiko,写了一个排序算法的动画演示,非常有趣。 这个周末,我就用它当做教材,好好学习了一下各种排序算法。 排序算法(Sorting algorithm)是计算机科学最古老、最基本的课题...

杨军军
2011/04/06
0
0
C++ Vector容器类型

C++中vector容器类为内置数组提供了一种替代表示,与string类一样vector类是随标准C++引入的标准库的一部分,为了使用vector我们必须包含相关的头文件: #include <vector> 使用vector有两种...

80后小子
2015/12/07
41
0
子集合加总问题(Subset sum problem)

两年前在做一个ERP项目时,有个客户提出,根据订单给出的每个货品的数量(库里存的有每个货品最小包装的重量,体积和长宽高),输入包装箱的承重和体积和长宽高,然后我需要你们提供一个包装...

TOTOTO_TOTO
2013/12/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失

在Spring Cloud中我们用Hystrix来实现断路器,Zuul中默认是用信号量(Hystrix默认是线程)来进行隔离的,我们可以通过配置使用线程方式隔离。 在使用线程隔离的时候,有个问题是必须要解决的...

xiaomin0322
33分钟前
1
0
使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101

本文首发于:Jenkins 中文社区 本文要点: 设计一条 Spring Boot 最基本的流水线:包括构建、制品上传、部署。 使用 Docker 容器运行构建逻辑。 自动化整个实验环境:包括 Jenkins 的配置,J...

Jenkins中文社区
38分钟前
1
0
springcloud配置中心和消息总线,学习,记录其中的问题

改造配置中心的客户端,接入消息总线 1.增加pom文件的引用 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20......

夜中孤影
50分钟前
3
0
gzip压缩

tar -zcvf gz包路径 被压缩的路径 tar -zcvf /home/xxx/test.tar.gz hello gz包的路径可以是 完整的也可以相对 , 被压缩的路径 不要全路径 不然压缩包里也会有全路径...

shzwork
57分钟前
3
0
rancher-1

部署rancher 官方快速部署 https://www.cnrancher.com/quick-start/ 部署命令 mkdir /data/rancher -p# 建立存放rancher数据的目录sudo docker run -d --restart=unless-stopped -v /dat......

以谁为师
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部