求全组合
来源:互联网 发布:linux配置代理服务器 编辑:程序博客网 时间:2024/05/28 05:15
算法转载自:http://blog.csdn.net/sagadean/article/details/8030541
我自己修改bug,又添加一些注释
#include <iostream>#include <stdlib.h>using namespace std;/* * array是要排列的数组 * isPrint是与array等长的,将要输出的数字标记的数组 * index和right是array的两个下表,index在左,right在右 * sum是当前组合的数字数目 * 该函数是从array的index到right之间选出sum个数字的组合,并在与之对应的 * isPrint数组中标记出来。对于index所指向的数字,可选或不选,就像背包算法一样,但总是将选出来的数量 * 限制在sum。 */void Print(int array[],int isPrint[],int index,int right,int sum){ if(index>right && sum) return; if(sum==0) { for(int i=0;i<=right;i++) { if(isPrint[i]==1) cout<<array[i]; } cout<<endl; return; } isPrint[index]=1; Print(array,isPrint,index+1,right,sum-1); isPrint[index]=0; Print(array,isPrint,index+1,right,sum);}void PrintAll(int array[],int length){ int *isPrint=new int[length](); for(int i=1;i<=length;i++) { Print(array,isPrint,0,length-1,i); }}int main(){ int array[4]={1,2,3,4}; PrintAll(array,4); system("pause");}
0 0
- 求全组合
- 递归求全组合
- 求全排列和组合
- 面试题:求全排列和组合
- 求全排列和组合(JAVA)
- 递归 求全排列与全组合
- 不使用递归求全排列和组合数
- 幂集问题(即求全组合,全部子集问题)
- 求N选M的组合和求全排列的巧妙算法
- 求N选M的组合和求全排列的巧妙算法 - 算法艺术 - Hello, busycai!
- 求全排列
- 求全排列
- 求全排列
- 求全排列
- 求全排列
- 求全排列
- 求全排列
- 求全排列
- Linux之数据流重导向
- 数字格式化代码
- 网狐机器人玩一局就退出的原因
- Cocos2d-x学习笔记(四)-------->场景切换
- C程序编译执行过程(转载)
- 求全组合
- App模块化及工程扩展
- cocos2d-x v3.2 FlappyBird 各个类对象具体代码分析(2)
- try_module_get和module_put
- Flex更改Alert提示框的字体大小和样式
- UITextField控件之ValueChanged事件
- 《UNIX环境高级编程》读书笔记之文件与目录(2)
- HDU-1548 A strange lift
- [解决]Xcode6模拟器虚拟键盘不显示