本文中的示例介绍了Java用于获取数组的指定长度数组组合算法。 分享仅供参考。 具体如下。
打包演示;
import java.util.Stack;
//*
* JAVA获取数组的指定长度的数组组合。
*
* @author JAVA世纪网(java2000.net,laozizhu.com) ) ) ) )。
*/
公共类测试服务质量
publicstaticvoidmain (字符串[ ] args ) {
testsequenceallt=newtestsequenceall (;
object [ ] arr={ 1,2,3 };
//循环得到每个长度的排列组合
for(intnum=1; num=arr.length; num ()。
t .获取序列(arr,0,num );
}
}
//保存结果的堆栈
私密堆栈=new stack (;
//*
*从指定数组中获取指定数量的数据组合
*
* @param arr指定的数组
* @param begin开始位置
* @param num获得的数量
*/
publicvoidgetsequence (object [ ] arr,int begin,int num ) {
if(num==0) {
system.out.println (堆叠; //找到一个结果
} else {
//循环使用各可用要素
for(intI=Begin; i arr.length; I ) {
//将当前位置数据放入结果堆栈
stack.push(ARR[I];
//将当前数据与起始位置数据交换
swap(arr,begin,I );
//从下一个位置查找剩下的组合
获取序列(arr,begin 1,num - 1 );
//交换回来
swap(arr,begin,I );
//删除当前数据
stack.pop (;
}
}
}
//*
*交换两个数组的元素
*
* @param arr数组
* @param from位置1
* @param to位置2
*/
publicstaticvoidswap (object [ ] arr,int from,int to ) {
if (从==到) {
返回;
}
对象tmp=arr [ from ];
arr [从]=arr [到];
arr[to]=tmp;
}
}
执行结果:
[1]
[2]
[3]
[ 1,2 ]
[ 1,3 ]
[ 2,1 ]
[ 2,3 ]
[ 3,2 ]
[ 3,1 ]
[ 1,2,3 ]
[ 1,3,2 ]
[ 2,1,3 ]
[ 2,3,1 ]
[ 3,2,1 ]
[ 3,1,2 ]
对java算法相关内容更感兴趣的读者可以查看本网站专题: 《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》、《Java缓存操作技巧汇总》、0103010
希望本文的描述对大家的java编程有帮助。