n个对象的一个排列,就是把这 n 个不同的
对象放在同一行上的一种安排。例如,对于
三个对象 a,b,c,总共有6个排列:
a b c
a c b
b a c
b c a
c a b
c b a
n 个对象的排列个数就是 n!。
基于回溯的全排列
1 import java.math.BigInteger; 2 import java.util.Arrays; 3 import java.util.Scanner; 4 5 6 public class Main { 7 static char[] a = {'a','b','c'}; 8 static char[] b = new char[4]; 9 public static void main(String[] args) { 10 f(0); 11 } 12 public static void f(int i){ 13 if(i>=a.length){ 14 System.out.println(Arrays.toString(a)); 15 return; 16 }else{ 17 for(int j=i;j<a.length;j++){ 18 char temp = a[j]; 19 a[j] = a[i]; 20 a[i] = temp; 21 f(i+1); 22 temp = a[j]; 23 a[j] = a[i]; 24 a[i] = temp; 25 } 26 } 27 } 28 }