疯狂java 输出全排列

  好快啊,都有班级结束培训了,都开始找工作了.好像都好挺不错的样子
  不知道自己到时候会是怎么样个情况,抓紧学习,顺便做下项目设计答辩用.
   这次主要是弄全排列问题..感觉又回到熟悉的数学课了...  

Java代码
public class Permutations {
public void permute(String value, int startIndex, int endIndex) {
if (startIndex == endIndex) {
System.out.printf("%s ", value);
} else {
for (int currIndex = startIndex; currIndex <= endIndex; currIndex++) {
value = swap(value, startIndex, currIndex);
permute(value, startIndex + 1, endIndex);

value = swap(value, startIndex, currIndex);
}
}
}
private String swap(String value, int idxOne, int idxTwo) {
char[] charArray = value.toCharArray();
char temp = value.charAt(idxOne);
charArray[idxOne] = charArray[idxTwo];
charArray[idxTwo] = temp;
return new String(charArray);
}
}
测试程序如下:
Java代码
public class Main {
public static void main(String[] args) {
String value = "ABCD";
new Permutations().permute(value, 0, value.length()-1);
}


}
运行结果:
ABCD
ABDC
ACBD
ACDB
ADCB
ADBC
BACD
BADC
BCAD
BCDA
BDCA
BDAC
CBAD
CBDA
CABD
CADB
CDAB
CDBA
DBCA
DBAC
DCBA
DCAB
DACB
DABC

  这就是C43排列了..最近某宝双12送彩票可以去碰碰运气.. 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值