本帖最后由 舒远 于 2012-9-18 13:24 编辑
- public class PaiLie{
-
- /**
- * @param args
- */
- public static void main(String[] args) {
- char[] b = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
- perm(b, 0);
-
- }
-
- static void swapArrayElements(char a[], int lhs, int rhs) {
- char temp = a[lhs];
- a[lhs] = a[rhs];
- a[rhs] = temp;
- }
-
- /**
- * 字符数组全排列
- *
- * @param a
- * @param start
- * @param set
- */
- static void perm(char a[], int start) {
- if (start == a.length - 1) {
- // 输出排列结果
- //set.add(new String(a));
- System.out.println(new String(a));
- return;
- }
- else {
- for (int i = start; i <= a.length - 1; i++) {
- // 将数组片段的各元素与首元素交换
- swapArrayElements(a, start, i);
- // 对交换后的,去掉首元素的数组片段进行全排列
- perm(a, start + 1);
- // 交换回来
- swapArrayElements(a, start, i);
- }
- }
- }
- }
复制代码 你可以打印一下试试,jvm会运行很长一段时间,统计了一下,一共有3628800个这样的数字 |