全排列

Posted wanlifeipeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全排列相关的知识,希望对你有一定的参考价值。

 

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

 

以上是关于全排列的主要内容,如果未能解决你的问题,请参考以下文章

html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma

算法设计:全排列算法代码实现

蓝桥杯 三行代码解决 “全排列的价值”(2022省赛pythonA组)

蓝桥杯 三行代码解决 “全排列的价值”(2022省赛pythonA组)

蓝桥杯 三行代码解决 “全排列的价值”(2022省赛pythonA组)

java 蓝桥杯 dfs 全排列