JAVA組合遞迴演算法
阿新 • • 發佈:2019-02-18
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