1. Pure Recursive Summation
Intuition
Directly apply the formula C_n = sum_{i=0}^{n-1} C_i * C_{n-1-i} using naive recursion.
Algorithm
- Base Case: If
n <= 1, return 1. - Initialize
res = 0. - For
ifrom 0 ton - 1: -
res += catalan(i) * catalan(n - 1 - i). - Return
res.
#include <iostream> using namespace std; long long catalanRecursive(int n) { if (n <= 1) return 1; long long res = 0; for (int i = 0; i < n; i++) { res += catalanRecursive(i) * catalanRecursive(n - 1 - i); } return res;} int main() { int n = 4; cout << "Catalan(" << n << ") [Recursive]: " << catalanRecursive(n) << endl; return 0;}Time & Space Complexity
- Time complexity:
O(4^n / n^(3/2)) - Space complexity:
O(n) recursion stack