JAVA组合递归算法

    public static void main(String[] args) {
        char[] ch = { 'a', 'b', 'c', 'd' };
        boolean[] bool = new boolean[ch.length];
        combinat(ch, 2, bool, 0);
    }

    // num:取几个元素,bool:标记是否取出,start:开始位置
    public static void combinat(char[] ch, int num, boolean[] bool, int start) {
        if (num == 0) {
            for (int i = 0; i < start; i++) {
                if (bool[i] == true) {
                    System.out.print(ch[i]);
                }
            }
            System.out.println();
            return;
        }
        if (start == ch.length) {
            return;
        }
        bool[start] = true;
        combinat(ch, num - 1, bool, start + 1);
        bool[start] = false;
        combinat(ch, num, bool, start + 1);
    }

输出:

ab
ac
ad
bc
bd
cd
    原文作者:递归算法
    原文地址: https://blog.csdn.net/cx118118/article/details/57484811
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞