用JAVA写出combination的算法: 在A,B,C,D,E中选出3个,列出所有可能的数组

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 03:44:47
用JAVA写出combination的算法: 在A,B,C,D,E中选出3个,列出所有可能的数组

用JAVA写出combination的算法: 在A,B,C,D,E中选出3个,列出所有可能的数组
用JAVA写出combination的算法: 在A,B,C,D,E中选出3个,列出所有可能的数组

用JAVA写出combination的算法: 在A,B,C,D,E中选出3个,列出所有可能的数组
// 直接贴代码了
public class Java196100137 {
public static void main(String args[]) {
new Java196100137().combination(new String[] { "A", "B", "C", "D" }, 3);
}
/**
*
* @param a记录组合序列数组
* @param n总数
* @param r选取的个数
* @param k1数组坐标
* (初始传入0)
* @param k2辅助参数
* (初始传入0)
*/
public void combination(int record[], String info[], int n, int r, int k1,
int k2) {
if (k1 == r) { // 输出当前序列
for (int i = 0; i < r; ++i)
System.out.print(info[record[i] - 1] + " ");
System.out.println();
} else
for (int i = k2; i < n; ++i) {
record[k1] = i + 1; // 子序列赋值
combination(record, info, n, r, k1 + 1, i + 1); // 递归回溯
}
}
/**
*
* @param a记录组合序列数组
* @param n总数
* @param r选取的个数
*/
public void combination(String info[], int r) {
int record[] = new int[r];
int n = info.length;
combination(record, info, n, r, 0, 0);
}
}
// 你看看,还有没有什么疑问?