zoukankan      html  css  js  c++  java
  • 组合算法

     
    本程序的思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标
    代表的数被选中,为0则没选中。
    首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。
    然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为
    “01”组合,同时将其左边的所有“1”全部移动到数组的最左端。
    当第一个“1”移动到数组的m-n的位置,即n个“1”全部移动到最右端时,就得
    到了最后一个组合。
    例如求5中选3的组合:
    1 1 1 0 0 //1,2,3
    1 1 0 1 0 //1,2,4
    1 0 1 1 0 //1,3,4
    0 1 1 1 0 //2,3,4
    1 1 0 0 1 //1,2,5
    1 0 1 0 1 //1,3,5
    0 1 1 0 1 //2,3,5
    1 0 0 1 1 //1,4,5
    0 1 0 1 1 //2,4,5
    0 0 1 1 1 //3,4,5  

  • 相关阅读:
    CentOS7- 配置阿里镜像源
    MySQL学习笔记
    OSI&TCP/IP模型
    加密算法学习
    golang学习笔记
    Redis学习总结整理
    TCP
    HTTP/HTTPS
    HTTP2
    MVCC
  • 原文地址:https://www.cnblogs.com/smwikipedia/p/1456389.html
Copyright © 2011-2022 走看看