import java.util.*;
public class Combination
{
public static void main(String[] args)
{
Vector testData = new Vector(Arrays.asList(1, 2, 3, 4, 5, 6));
Vector results = getAllCombinations(testData);
for(int i=0; i<results.size(); i++)
System.out.println(results.elementAt(i));
}
public static Vector getAllCombinations(Vector data)
{
Vector allCombinations = new Vector();
for(int i=1; i<=data.size(); i++)
{
Vector initialCombination = new Vector();
allCombinations.addAll(getAllCombinations(data, i));
}
return allCombinations;
}
public static Vector getAllCombinations(Vector data, int length)
{
Vector allCombinations = new Vector();
Vector initialCombination = new Vector();
combination(allCombinations, data, initialCombination, length);
return allCombinations;
}
private static void combination(Vector allCombinations, Vector data,
Vector initialCombination, int length)
{
if(length == 1)
{
for(int i=0; i<data.size(); i++)
{
Vector newCombination = new Vector(initialCombination);
newCombination.add(data.elementAt(i));
allCombinations.add(newCombination);
}
}
if(length > 1)
{
for(int i=0; i<data.size(); i++)
{
Vector newCombination = new Vector(initialCombination);
newCombination.add(data.elementAt(i));
Vector newData = new Vector(data);
for(int j=0; j<=i; j++)
newData.remove(data.elementAt(j));
combination(allCombinations, newData, newCombination, length - 1);
}
}
}
}
分享到:
相关推荐
System.out.println("对整数数组进行组合:C(n,n)"); int[] intArray=new int[4]; for(int i=0;i;i++){ intArray[i]=i+1; } System.out.println("对整数数组进行组合:C(4,4)"); Combination ...
Java排列组合算法 - 郭睿的专栏 - CSDN博客Java排列组合算法 - 郭睿的专栏 - CSDN博客
排列组合 排列 组合 java排列组合算法 排列组合算法
Java排列组合算法
本资源附带文档解释了排列组合算法的实现和原理。其中排列算法是基于递归实现的,组合算法是基于高效的位移法实现的。代码是使用Java版实现的。
Java排列组合_组合算法,利用list及set的无序性, 通过递归实现,不同于以往的排列组合 自娱自乐
6位数,共有几种排列组合的算法,java实现
java语言编写的gray码生成组合的程序代码,包括界面,组合数学作业。
排列组合算法实现,支持模板类。支持重复数的排列。算法采用递归方法,简单易懂。
原先在网上找到某位大虾写的一个简单的背包算法,于是在其基础上改成适合我们目前项目中要求的...值)条件的1个最优组合。不知能否大致符合您的要求,我把源码共产了,其中还包含一个例子,望您多多指教。谢谢您的光临!
NULL 博文链接:https://xieyan30.iteye.com/blog/1814117
此外,文档还提供了各种排列组合算法的详细代码示例和实现细节,包括递归和迭代方法。文档还涵盖了高级主题,如如何计算有重复元素的排列组合数量,以及如何优化这些算法的性能。 无论您是Java编程的初学者还是有...
所使用的算法应该是效率最高的算法,而且这两个类都只是对需要排列组合的数组的下标进行处理,所以能对任何类型的数组进行排列组合。
组合算法JSP程序,以java算法为基础,描述组合算法的运行机制和实现
基于java的国密SM系列加解密算法,包含SM1、SM2、SM3、SM4的加解密java实现
该资源为本人自己写的交叉组合算法代码的工具类,一共两个,搭配文章看效果更好!
BinaryTree.java 作业.txt 树.pptx 2016-10-11_220207.wmv 2016-10-11_225649.wmv 二叉树的建立.pptx 作业.txt 2016-10-13_215451.wmv 2016-10-13_230503.wmv 作业.txt 图.pptx 2016-10-15_214038.wmv 2016-10-15_...
介绍了几种用JAVA实现的排列组合算法,有需要的朋友可以参考一下
实现了排列组合算法的类(JAVA),实现了排列组合算法的类(JAVA)