62,620
社区成员
发帖
与我相关
我的任务
分享package pk;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
*
* @author lingnag
*
*/
public class FullSort {
/**
* 递归算法:将数据分为两部分,递归将数据从左侧移右侧实现全排列
*
* @param datas
* @param target
*/
private static void sort(List datas, List target, int size) {
if (target.size() == size) {
for (Object obj : target)
System.out.print(obj);
System.out.print(" ");
return;
}
for (int i = 0; i < datas.size(); i++) {
List newDatas = new ArrayList(datas);
List newTarget = new ArrayList(target);
newTarget.add(newDatas.get(i));
newDatas.remove(i);
sort(newDatas, newTarget, size);
}
}
public static void main(String[] args) throws IOException {
InputStream is = System.in;
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
System.out.print("输入一个字符串:");
String str = br.readLine();
char[] cArr = str.toCharArray();
String[] datas = new String[cArr.length];
int pos = 0;
for (char ch : cArr) {
datas[pos++] = new String("" + ch);
}
for (int i = 1; i <= datas.length; ++i) {
sort(Arrays.asList(datas), new ArrayList(), i);
System.out.println();
}
}
}