码迷,mamicode.com
首页 > 其他好文 > 详细

全排列

时间:2017-05-09 16:54:54      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:ring   ons   cab   system   tar   bad   logs   ati   art   

 

Java版代码:

public class Permutations {
    public static void main(String[] args) {
        String s = "abcd";
        permutations(s);
    }

    // 全排列
    public static void permutations(String s) {
        char[] arr = s.toCharArray();
        int[] cnt = new int[1];
        _permutations(arr, 0, cnt);
        System.out.println("共有" + cnt[0] + "中排列");
    }

    // cnt 用来统计排列的个数
    private static void _permutations(char[] arr, int start, int[] cnt) {
        if (start == arr.length - 1) {
            cnt[0]++;
            System.out.println(arr);
        }
        char tmp;
        for (int i = start; i < arr.length; ++i) {
            tmp = arr[start];
            arr[start] = arr[i];
            arr[i] = tmp;

            _permutations(arr, start + 1, cnt);

            tmp = arr[start];
            arr[start] = arr[i];
            arr[i] = tmp;
        }
    }

}

效果:

abcd
abdc
acbd
acdb
adcb
adbc
bacd
badc
bcad
bcda
bdca
bdac
cbad
cbda
cabd
cadb
cdab
cdba
dbca
dbac
dcba
dcab
dacb
dabc
共有24中排列

 

全排列

标签:ring   ons   cab   system   tar   bad   logs   ati   art   

原文地址:http://www.cnblogs.com/hupeng1234/p/6831127.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!