首页 > 其他 > 详细

全排列

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

 

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中排列

 

全排列

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!