package org.jenfer.test;
/**
* 求一组数的全排列
* 比如123
* 输出:
* 321
* 231
* 213
* 312
* 132
* 123
* @author zhoujh
* 作者简介:周剑华,武汉科技大学计算机硕士研究生
*
*/
public class ArrangeTest {
public static void main(String[] args) {
arrange("123");
}
/**
* 排列
* @param tab
*/
public static void arrange(String tab) {
if(tab.length()<=1){
System.out.println("组合为:" +tab);
}else{
arrangeHelper(""+tab.charAt(0),tab.substring(1));
}
}
/**
* 辅助类
* @param prefix
* @param suffix
*/
private static void arrangeHelper(String prefix, String suffix) {
//打印结果
if(suffix.length()==1){
for (int i = 0; i < prefix.length()+1; i++) {
String partOne=prefix.substring(0,i);
String partTwo=prefix.substring(i,prefix.length());
System.out.println(partOne+suffix+partTwo);
}
}else{
for (int i = 0; i < prefix.length()+1; i++) {
String partOne=prefix.substring(0,i);
String partTwo=prefix.substring(i,prefix.length());
arrangeHelper(partOne+suffix.charAt(0)+partTwo,suffix.substring(1));
}
}
}
}