Estoy luchando por entender cómo determinar de manera efectiva la complejidad del tiempo del código recursivo. Si bien puedo ver cómo podemos encontrar la complejidad del tiempo para el código que tiene dos llamadas recursivas (por ejemplo, fib recursiva) como O (2 ^ n), lucho por destiempo cuando hay n recursiones. Aquí hay un ejemplo:
Nota rápida : traté de encontrar un ejemplo fácil. Admito que es muy probable que haya una fórmula para calcular el tamaño del "conjunto de potencia/superconjunto" y nos proporcione el trabajo necesario. Mi pregunta es más genérica y debe relacionarse con todos los momentos en que una repetición puede producir n recursiones adicionales.
var subsets = function(nums) { const result = []; function traverse(arr, start) { result.push(arr) for (let i = start; i < nums.length; i++) { traverse([...arr, nums[i]], i + 1); } } traverse([], 0) return result; };