1. 程式人生 > >JAVA組合遞迴演算法

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