zoukankan      html  css  js  c++  java
  • 集合的子集和集合的全排列问题

    #include<iostream>
    using namespace std;
    //非递归求解所有的子集
    void fun(int a[] , int n)
    {
    int i = 0 , j ;
    while(i < (1<<n)) //2的n次方
    {
    for(j = 0 ; j < n ; j ++)
    {
    if(i&(1<<j))
    {
    cout
    <<a[j]<<"\t";
    }
    }
    cout
    <<endl;
    i
    ++;
    }
    }
    //递归求解所有的子集
    void print(int a[],bool flag[],int k,int length)
    {
    if(k>=length)
    {
    for(int i=0;i<length;i++)
    {
    if(flag[i]) cout<<a[i]<<"\t";
    }
    cout
    <<endl;
    return ;
    }
    for(int j=0;j<2;j++)
    {
    if(j==0)
    {
    flag[k]
    =true;
    print(a,flag,k
    +1,length);
    flag[k]
    =false;
    }
    else
    {
    flag[k]
    =false;
    print(a,flag,k
    +1,length);
    flag[k]
    =true;
    }
    }
    }
    //集合的全排列算法
    void Perm(int list[], int k ,int length)
    {
    if(k>=length)
    {
    for(int i=0;i<length;i++)
    cout
    <<list[i]<<"\t";
    cout
    <<endl;
    return ;
    }

    for( int j=k;j<length;j++)
    {
    swap(list[k],list[j]);
    Perm(list,k
    +1,length);
    swap(list[k],list[j]);
    }
    }


    int main()
    {
    int list[]={1,2,3,4};
    bool flag[]={false,false,false,false};
    fun(list,
    4);
    print(list,flag,
    0,4);
    Perm(list,
    0,4);
    return 0;
    }
  • 相关阅读:
    redis -- RDB
    redis--数据库
    redis-慢查询日志
    redis 订阅与发布
    redis 事务
    redis 事件
    redis--服务器与客户端
    readis 内部数据结构
    Redis数据类型
    Docker 限制容器资源
  • 原文地址:https://www.cnblogs.com/coser/p/2040818.html
Copyright © 2011-2022 走看看