hi. kann mir jemand bitte bei java helfen?
1) was genau macht das ding? ist das rekursiv? warum?
2) von welchen parametern hängt die laufzeit ab? wie sieht das ganze in der asymptotischen abschätzung in der O/Θ-notation aus?
wäre für jede hilfe dankbar!
Java:
1 public static TreeSet < String > words ( int k , Set < Character > alphabet ) {
2 if ( k <= 0) {
3 throw new IllegalArgumentException ("k is not positive : k="+ k );
4 }
5
6 TreeSet<String> words, list;
7
8 if (k == 1) { // base case: words of length 1
9 words = new TreeSet<String>();
10 for (Character letter : alphabet) {
11 words.add(String.valueOf(letter));
12 }
13 return words;
14 } else {
15 list = words (k - 1, alphabet );
16 words = new TreeSet<String>();
17 for (char letter : alphabet) {
18 for (String w : list) {
19 words.add(letter + w);
20 }
21 }
22 return words;
23 }
1) was genau macht das ding? ist das rekursiv? warum?
2) von welchen parametern hängt die laufzeit ab? wie sieht das ganze in der asymptotischen abschätzung in der O/Θ-notation aus?
wäre für jede hilfe dankbar!