Aufgabe 1
Dokumentieren Sie die Ausführung des Aufrufs binary(6), indem Sie die Auswertung aller binary-Aufrufe als eigerückte Nebenrechnungen notieren.
binary(6) // else binary(6 / 2) + (6 % 2) // wird zu binary(3) + 0
binary(3)
// else
binary(3 / 2) + (3 % 2) // wird zu binary(1) + 1
binary(1)
// if
return 1
-> binary(3) => 1 + 1
return 11
-> binary(6) = toInt("11" + "0") return 110
Wie viele binary-Aufrufe werden bei der Auswertung von binary(n) in Abhängigkeit von n ausgeführt?
Bei jedem Aufruf -> n/2 bis n <= 1 tiefe = anzahl der teilungen / 2 ---> O(n) = log2(n) + 1
- 1 durch den letzten aufruf (Rekursions Anker)
Description
Languages
Java
54.5%
Nix
38.1%
Makefile
7.4%