java 全排列问题

来源:百度文库 编辑:神马文学网 时间:2024/10/05 22:40:28

/*************************************************************
 *      2.1递归的概念 [例2.4]全排列问题
 *
 * 生成一组数据的全排列,可用于基于排列树的回溯算法中
 */

import java.util.Arrays;

public class Perm {
 private static void swap(int[] a, int i, int j) {
  int temp = a[i];
  a[i] = a[j];
  a[j] = temp;
 }
 public static void perm(int[] a, int t) {
  if (t == a.length) {
   System.out.println(Arrays.toString(a));
  } else {
   for (int i = t; i < a.length; i++) {
    swap(a, t, i);
    perm(a, t + 1);
    swap(a, t, i);
   }
  }
 }
 
 public static void main(String[] args) {
  int[] array = {1, 2, 3};
  perm(array, 0);
 }
}