求一个数组元素的所有排列组合以下文字资料是由小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

java里的组合 java 数组所有组合_组合数

//array为要组合的数组 size为长度 firstIndex为要放在所以组合最前面的元素 result保存所有组合 每一行为一个组合
public int func(int[] array int[][] result){
//所有递归的结果都保存在result中 并且最低层的组合结果保存在最后列
//返回本次递归组合的个数
int size = ls;
if(size== )//如果没有元素 不再向下递归
return ;
int num = ;//本层递归的总组合数
int subnum = ;//本层每个元素作为头元素 其他元素的组合个数(递归返回)
for(int i= ;i
int[] newArray = new int[size ];
for(int j= k= ;j
if(j!=i)
newArray[k++]=array[j];
}
subnum=func(newArray result);//递归 对后面的子数组组合 并返回以array[i]开头的组合数
num+=subnum;
//将组合好的所有新数组中的每个组合放在array[i]后面 构成本层的组合 保存到数组中
int j = result rows subnum;//表示本次组合的结果从哪行开始插入 result rows表示数组已有行数
while(j
result[j++][ls size] = array[i];//将头元素加上
}
return num; lishixinzhi/Article/program/Java/hx/201401/30283

分页:123