package com.test;
import java.util.Iterator;
import java.util.LinkedList;
public class Test {
private LinkedList<String> list = new LinkedList<String>();
private void PaiLie(String startStr, String str) {
for (int i = 0; i < str.length(); i++) {
for (int j = i + 1; j < str.length(); j++) {
char[] ch = str.toCharArray();
char temp = ch[i];
ch[i] = ch[j];
ch[j] = temp;
String startStr1 = startStr + String.valueOf(ch[0]);
String s = (new String(ch)).substring(1,(new String(ch)).length());
if ((!list.contains(startStr1 + s)) ){
list.add(startStr1 + s);
}
PaiLie(startStr1, s);
}
}
}
/**
* 打印
*/
private void display() {
Iterator<String> it = list.listIterator();
while (it.hasNext()) {
System.out.println(it.next().toString());
}
}
public static void main(String[] args) throws InterruptedException {
Test test = new Test();
test.PaiLie("","123");
test.display();
}
}
排列组合算法示例
本文介绍了一个使用Java实现的排列组合算法示例。通过递归的方式生成字符串的所有可能排列,并利用LinkedList来存储这些排列结果,确保了每个排列的唯一性。文章最后展示了如何通过迭代器遍历并打印所有排列。
2630

被折叠的 条评论
为什么被折叠?



