国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

基于集合的子集與集合的全排列的相關問題

2020-01-24 03:22:39
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

#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;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉田县| 台江县| 会宁县| 泗水县| 探索| 凤山县| 霸州市| 德惠市| 吐鲁番市| 白山市| 德安县| 潞西市| 景德镇市| 井研县| 新沂市| 彭州市| 寻乌县| 本溪市| 佛坪县| 连城县| 高雄市| 富阳市| 易门县| 上饶市| 佛坪县| 贺州市| 霍州市| 贡觉县| 永城市| 叙永县| 苍梧县| 临颍县| 进贤县| 容城县| 怀远县| 雅江县| 通辽市| 清丰县| 翁源县| 鄢陵县| 东明县|