是的,有。用于计算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系列元素,并将其存储为查找表。