是否有一个指数时间算法的简单代码示例?

时间:2017-02-11 17:30:55

标签: dynamic-programming exponential

我的意思是我知道有关生成指数可能性并迭代它们的算法。但是,任何人都可以给我一个伪代码,代码遍历所有情况并找到答案。

1 个答案:

答案 0 :(得分:2)

是的,有。用于计算Fibonacci系列而不进行动态规划的简单算法就是最好的例子。

int f(n)
{
if(f == 0 || f == 1)
    return 1;
return f(n-1)+f(n-2);
}

此代码需要指数时间。计算f(n)的时间与n+1斐波纳契数成正比。您可以查看link以了解Fibonacci系列的增长(礼貌:David Leese的blog)。如果你看一下Fibonacci系列的对数图,你会发现它有一个指数增长。

当然,解决方案是动态编程。存储我们到目前为止计算的Fibonacci系列元素,并将其存储为查找表。