Давайте упростим вашу функцию до:
for (int i=0; i< n; i++)
res += Catalan(i)*(Catalan(i-1);
return res;
это упрощение не должно влиять на сложность времени.
Пусть n = 1:
1
/\
0 0
, тогда у нас будет 3 вызова каталонской функции.
Если n = 2, то для каталонского (i) мы будем иметь:
2
/
1
/\
0 0
и для каталонского (i-1)
1
/\
0 0
, поэтому в общей сложности у нас будет:
2
/\
1 1
/\ /\
0 0 0 0
, если i = 3, то:
3
/ \
2 2
/\ /\
1 1 1 1
/\ /\ /\ /\
0 0 0 0 0 0 0 0
Мне кажется, O(2^n)
сложность