博客上看到的一个算法,用Java实现了一个,转载而来
算法描述:
算法说明:当n大于2时,n个数的全组合一共有(2^n)-1种。 只是,这个算法n>32时就不适合了。
当对n个元素进行全组合的时候,可以用一个n位的二进制数表示取法。
1表示在该位取,0表示不取。例如,对ABC三个元素进行全组合, 100表示取A,010表示取B,001表示取C,101表示取AC 110表示取AB,011表示取BC,111表示取ABC
注意到表示取法的二进制数其实就是从1到7的十进制数
推广到对n个元素进行全排列,取法就是从1到2^n-1的所有二进制形式
要取得2^n,只需将0xFFFFFFFF左移32-n位,再右移回来就可以了。
算法实现:
Java代码
package com.set.test;
public class SetTest {
public static void main(String[] args) {
String str[] = { "A", "B", "C", "D", "E" };
int nCnt = str.length;
int nBit = (0xFFFFFFFF >>> (32 - nCnt));
for (int i = 1; i <= nBit; i++) {
for (int j = 0; j < nCnt; j++) {
if ((i << (31 - j)) >> 31 == -1) {
System.out.print(str[j]);
}
}
System.out.println("");
}
}
}
分享到:
相关推荐
java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法...
kMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法Java...
毕业设计:蚁群算法实现vrp问题java版本 毕业设计:蚁群算法实现vrp问题java版本 毕业设计:蚁群算法实现vrp问题java版本 毕业设计:蚁群算法实现vrp问题java版本 毕业设计:蚁群算法实现vrp问题java版本 毕业设计:...
Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法...
五子棋 java版 博弈算法
本资源附带文档解释了排列组合算法的实现和原理。其中排列算法是基于递归实现的,组合算法是基于高效的位移法实现的。代码是使用Java版实现的。
《算法心得 高效算法的奥秘 原书第2版》pdf版 推荐阅读
java算法全卷(包括基本算法和图算法)
在《算法心得:高效算法的奥秘》中,作者给我们带来了一大批极为诱人的知识,其中包括各种节省程序运行时间的技巧、算法与窍门。学习了这些技术,程序员就可写出优雅高效的软件,同时还能洞悉其中原理。这些技术极为...
java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法
java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java...
排列组合 排列 组合 java排列组合算法 排列组合算法
推荐算法开源代码库,全部采用java写的,包含70多种推荐算法
关于数据结构和算法的详细书籍,为Java版本,超详细,超准确!
Java排列组合算法 - 郭睿的专栏 - CSDN博客Java排列组合算法 - 郭睿的专栏 - CSDN博客
数据结构与算法(JAVA语言版) 数据结构与算法(JAVA语言版)
Java排列组合算法
LZ4压缩算法Java实现 LZ4压缩算法是一种lossless压缩算法,提供了高达500 MB/s每个核心的压缩速度,支持多核心CPU,能根据需要动态调整压缩速度,从而在压缩速度和压缩比之间取得平衡。该算法不仅具有极快的压缩...
java版连连看算法java版连连看算法java版连连看算法
6位数,共有几种排列组合的算法,java实现