动态规划VS分治策略

•在用分治法解决问题时,由于子问题的数目往往是问题规模的指数函数,因此对时间的消耗太大。
•动态规划的思想在于,如果各个子问题不是独立的,不同的子问题的个数只是多项式量级,而我们能够保存已经解决的子问题的答案,在需要的时候再找出已求得的答案,这样就可以避免大量的重复计算。

由此而来的基本思路是,用一个表记录所有已解决的子问题的答案,不管该问题以后是否被用到,只要它被计算过,就将其结果填入表中

 

 

 

斐波纳斯//哈哈

 

int F(int n, int a[N])
{

    if (n==0)  return 0;
    if (n==1)  return 1;
        a1=a[n-1];
        a2=a[n-2];
        if。。。。
        //用a1和a2来代替已经算出来的结果,就能避免一定程度上的递归,用来减少计算时间和计算空间
    return  F(n-1, a)+F(n-2, a);
}

 

posted @ 2015-06-07 08:34  Tritone  阅读(403)  评论(0编辑  收藏  举报