全排列

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 }

 

posted @ 2017-03-22 16:48  来一点音乐  阅读(182)  评论(0编辑  收藏  举报