자바의 모든 조합을 주어진 집합 (문자열 또는 정수 배열 일 수 있음)을 찾는 방법에 대한 예제를 찾으려고했습니다. 난 정말 어떻게 작동하는지 이해하지 못하고,자바에서 집합의 조합을 찾는 재귀 알고리즘
// print all subsets of the characters in s
public static void comb1(String s) { comb1("", s); }
// print all subsets of the remaining elements, with given prefix
private static void comb1(String prefix, String s) {
if (s.length() > 0) {
System.out.println(prefix + s.charAt(0));
comb1(prefix + s.charAt(0), s.substring(1));
comb1(prefix, s.substring(1));
}
}
// read in N from command line, and print all subsets among N elements
public static void main(String[] args) {
int N = Integer.parseInt(args[0]);
String alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
String elements = alphabet.substring(0, N);
// using first implementation
comb1(elements);
System.out.println();
}
을하지만 (.. 내가 여기에만 관련 부분을 복사 한 http://introcs.cs.princeton.edu/java/23recursion/Combinations.java.html에 있음) 그리고 나는이 코드 조각을 건너 온있다. 누구든지 설명해 주겠니?
는 당신이 문제가있는 코드 , 아니면 기본 원리입니까? 연필과 종이를 가지고 작은 샘플을보고 싶을 수도 있습니다. N = 2로 시작하고 코드에서 "abc"로 수행하는 작업을 수행하십시오. – Bart